正式学习MVC 02
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的更多相关文章
- 正式学习MVC 01
1.新建项目 点击创建新项目,选择ASP.NET web应用程序,对项目进行命名后点击创建. 截图如下: 取消勾选HTTPS配置 可选择空 + mvc 或直接选定MVC 2.目录结构分析 1) App ...
- 正式学习MVC 05
1.剃须刀模板razor的使用 1)混编 循环语法 @model List<MVCStudy.Models.Student> @{ ViewBag.Title = "List&q ...
- 正式学习MVC 06
1.Model常用属性讲解 using System; using System.ComponentModel.DataAnnotations; namespace MVCStudy2.Models ...
- 正式学习MVC 04
1.ActionResult ActionResult是一个父类, 子类包括了我们熟知的 ViewResult 返回相应的视图 ContentResult 返回字符串 RedirectResult( ...
- 正式学习MVC 03
1.View -> Controller的数据通信 1) 通过url查询字符串 public ActionResult Index(string user) { return Content(u ...
- 白话学习MVC(十)View的呈现二
本节将接着<白话学习MVC(九)View的呈现一>来继续对ViewResult的详细执行过程进行分析! 9.ViewResult ViewResult将视图页的内容响应给客户端! 由于Vi ...
- 学习MVC之租房网站(二)-框架搭建及准备工作
在上一篇<学习MVC之租房网站(一)-项目概况>中,确定了UI+Service的“双层”架构,并据此建立了项目 接下来要编写Common类库.配置AdminWeb和FrontWeb 一.编 ...
- [eShopOnContainers 学习系列] - 02 - vs 2017 开发环境配置
[eShopOnContainers 学习系列] - 02 - vs 2017 开发环境配置 https://github.com/dotnet-architecture/eShopOnContain ...
- 软件测试之loadrunner学习笔记-02集合点
loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...
随机推荐
- Linux常用指令(三)
进入京东运维组实习,收到了很多同事的热心指导,自己也努力学习,按照他们给出的学习计划,真的很充实,学到了很多不只是开发方面的知识. 以下简单记录下自己的笔记,方便以后查阅. 1.文件系统 Linux系 ...
- Nginx配置使用
1.黑色标注的得自己写入到nginx.conf文件中 upstream serverlb { server 127.0.0.1:9999; server 127.0.0.1:8888; } serve ...
- 基础篇八:log配置
第一:首选查看有哪些日志文件 cd /etc/nginx/ cat nginx.conf cd /var/log/nginx/
- String截取字符串的指定字节长度
/** TODO:截取字符串的指定字节长度 * @Author wenjing * @Date 11:02 2019/5/15 * @Param [str, bengin, end] * @retur ...
- TCP并发、GIL、锁
TCP实现并发 #client客户端 import socket client = socket.socket() client.connect(('127.0.0.1',8080)) while T ...
- 高可用性的mongo集群搭建
mongoDB安装 参照:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 配置yum管理包 在路径/etc/y ...
- golang kafka clinet 内存泄露问题处理
go 内存泄露 新版本服务跑上一天内存占用20g,显然是内存泄露 内存泄露的问题难在定位 技术上的定位 主要靠 pprof 生成统计文件 之前写web项目 基于net/http/pprof 可以看到运 ...
- springboot学习笔记:7.IDEA下5步完成热部署配置
开发工具IDEA 2017.02 JDK1.8 1.pom.xml中增加: <dependency> <groupId>org.springframework.boot&l ...
- 关于安装了Vue-devtools插件但在浏览器控制台不显示的解决方案
Google浏览器中开发调试的时候,右上角出现vue的图标,但是在开发者工具中没有出现vue调试(已在扩展程序中安装 Vue Devtools) 控制台却没有. 错误原因: 没显示调试工具的原因是用了 ...
- NBA球星的生意经 个人流量化之路
个人流量化之路" title="NBA球星的生意经 个人流量化之路"> 在国人欢天喜地的庆祝新春佳节之时,大洋彼岸也在进行着让全球篮球迷为之"着魔&quo ...