1、cookie

继续讲解MVC的内置对象cookie

相对不安全

1)保存cookie

      public ActionResult Index()
{
// 设置cookie以及过期时间
Response.Cookies.Add(new HttpCookie(name: "userId")
{
Value = "128idn62dx",
Expires = DateTime.Now.AddDays()
});
return Content("ok!");
}

2) 获取cookie

        public ActionResult Index()
{ return Content(Request.Cookies["userId"].Value);
}

3)移除cookie

      public ActionResult Index()
{
// 设置cookie以及过期时间
Response.Cookies.Add(new HttpCookie(name: "userId")
{
Expires = DateTime.Now.AddDays(-)
});
return Content("ok!");
}

2、Application

1) 是全局的

设置application

         public ActionResult Index()
{
HttpContext.Application["user"] = "Linda";
return Content(HttpContext.Application["user"].ToString());
}

3、Server

包含了服务器的常用方法

      public ActionResult Index()
{
Server.Transfer(path: "html页地址");
return Content("ok");
}

路径不变,内容改变

.MapPath  虚拟路径转物理路径

2、控制器(controller)与视图(view)的数据通信

Controller里面每个方法都可供访问

1) Controller => view

①ViewBag

控制器文件

        public ActionResult Index()
{
ViewBag.Info = "info from Controller";
return View();
}

视图文件

 @{
ViewBag.Title = "Index";
} <h2>App Page for DemoController</h2>
<!--访问Controller内数据--> <p>@ViewBag.Info</p>

②ViewData

        public ActionResult Index()
{
ViewData["Name"] = "fiona";
return View();
}
@{
ViewBag.Title = "Index";
} <h2>App Page for DemoController</h2>
<!--访问Controller内数据--> <p>@ViewData["Name"]</p>

③TempData

可跨页面传递数据,仅能被访问一次,之后会被清除

        public ActionResult Index()
{
TempData["token"] = "23vf5c";
return View();
}
@{
ViewBag.Title = "Index";
} <h2>App Page for DemoController</h2>
<!--访问Controller内数据--> <p>@TempData["token"]</p>

上面3中方法传递的都是不主要的数据

主要的数据通过下面的方法传递

④通过View方法传递

 @{
ViewBag.Title = "Index";
} <h2>App Page for DemoController</h2>
<!--访问Controller内数据--> <p>@Model.Name</p>
<p>@Model.Sex</p>
         public ActionResult Index()
{
return View(new Animal()
{
Name = "cat",
Sex = "male"
});
}

ide不能进行识别来提示,可声明

@{
ViewBag.Title = "Index";
}
@model MVCStudy.Models.Animal <h2>App Page for DemoController</h2>
<!--访问Controller内数据--> <p>@Model.Name</p>
<p>@Model.Sex</p>

Model内的类型要与View方法参数内的一致

其它方式:指定视图页并传参

        public ActionResult Index()
{
return View("ShowData",new Animal()
{
Name = "cat",
Sex = "male"
});
}
@{
Page.Title = "此处显示标题";
//Layout = "此处显示你的布局页";
}
@model MVCStudy.Models.Animal <div>
this iss ShowData page
</div> <div> data from democontroller</div> <p>@Model.Name</p>
<p>@Model.Sex</p>

同时指定布局模板,下面的mylayout位于shared目录下

    public ActionResult Index()
{
       // 视图名,模板页,数据
return View("ShowData",masterName:"_MyLayout",new Animal()
{
Name = "cat",
Sex = "male"
});
}

------------恢复内容结束------------

正式学习MVC 02的更多相关文章

  1. 正式学习MVC 01

    1.新建项目 点击创建新项目,选择ASP.NET web应用程序,对项目进行命名后点击创建. 截图如下: 取消勾选HTTPS配置 可选择空 + mvc 或直接选定MVC 2.目录结构分析 1) App ...

  2. 正式学习MVC 05

    1.剃须刀模板razor的使用 1)混编 循环语法 @model List<MVCStudy.Models.Student> @{ ViewBag.Title = "List&q ...

  3. 正式学习MVC 06

    1.Model常用属性讲解 using System; using System.ComponentModel.DataAnnotations; namespace MVCStudy2.Models ...

  4. 正式学习MVC 04

    1.ActionResult ActionResult是一个父类, 子类包括了我们熟知的 ViewResult 返回相应的视图 ContentResult  返回字符串 RedirectResult( ...

  5. 正式学习MVC 03

    1.View -> Controller的数据通信 1) 通过url查询字符串 public ActionResult Index(string user) { return Content(u ...

  6. 白话学习MVC(十)View的呈现二

    本节将接着<白话学习MVC(九)View的呈现一>来继续对ViewResult的详细执行过程进行分析! 9.ViewResult ViewResult将视图页的内容响应给客户端! 由于Vi ...

  7. 学习MVC之租房网站(二)-框架搭建及准备工作

    在上一篇<学习MVC之租房网站(一)-项目概况>中,确定了UI+Service的“双层”架构,并据此建立了项目 接下来要编写Common类库.配置AdminWeb和FrontWeb 一.编 ...

  8. [eShopOnContainers 学习系列] - 02 - vs 2017 开发环境配置

    [eShopOnContainers 学习系列] - 02 - vs 2017 开发环境配置 https://github.com/dotnet-architecture/eShopOnContain ...

  9. 软件测试之loadrunner学习笔记-02集合点

    loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...

随机推荐

  1. Mybatis+Druid多数据源配置

    在日常开发中我们可能会用到多数据源开发,什么是多数据源? 简单来讲的话,就是一个项目连接多个数据库.当然只是可能会用到,我暂时没见过应用场景,但是还是了解学习一下 此项目可以基于上一个简单集成项目进行 ...

  2. [APIO2009-C]抢掠计划

    题:https://www.cometoj.com/problem/0461 分析:求边双,最后求多汇点最长路 #include<iostream> #include<cstring ...

  3. 安装php7.2

    1,yum源默认的版本太低了,手动安装有一些麻烦,所以可以采用yum的方式进行安装. 2,检查当前安装的PHP包yum list installed | grep php 如果有安装的PHP包,先删除 ...

  4. Simple Random Sampling|representative sample|probability sampling|simple random sampling with replacement| simple random sampling without replacement|Random-Number Tables

    1.2 Simple Random Sampling Census, :全部信息 Sampling: 抽样方式: representative sample:有偏向,研究者选择自己觉得有代表性的sam ...

  5. git理论知识

    1.Git 有三种状态,你的文件可能处于其中之一:已提交(committed).已修改(modified)和已暂存(staged) 由此引入 Git 项目的三个工作区域的概念:Git 仓库.工作目录以 ...

  6. 2019ICPC南京网络赛B super_log(a的b塔次方)

    https://nanti.jisuanke.com/t/41299 分析:题目给出a,b,mod求满足条件的最小a,由题目的式子得,每次只要能递归下去,b就会+1,所以就可以认为b其实是次数,什么的 ...

  7. TPO1-3 Timberline Vegetation on Mountains

    Wind velocity also increase with altitude and may cause serious stress for trees,as is made evident ...

  8. jsonp和callback的使用

    这两天用 Jquery 跨域取数据的时候,经常碰到 invalid label 这个错误,十分的郁闷,老是取不到服务器端发送回来的 json 值, 一般跨域用到的两个方法为:$.ajax 和$.get ...

  9. highcharts 柱状图在柱子顶部显示y轴数据

    var plotOptions={ column:{ //borderColor: "#CCCC66",//边框 shadow: true, //阴影 dataLabels:{ / ...

  10. LeetCode Day 9

    LeetCode0017 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23&q ...