MVC页面常见的三种传值方式
来源:互联网 发布:社交网络关系图 绘制 编辑:程序博客网 时间:2024/06/08 17:35
前言
最近在敲积分系统,发现有很多对象可以用来传值,今天就来总结一下常见的三种方式:ViewData、ViewBag和TempData
这三种方式用于Controller向View传值,一般情况下我们不会只传list,还会附带很多额外的零散的数据,这样通过model就无能为力了,这时候就会用到上文的三种对象
首先对比一下前两者——ViewData&ViewBag
Controller里边的代码(ViewData):
public ActionResult Index() { List<string> colors = new List<string>(); colors.Add("red"); colors.Add("green"); colors.Add("blue"); ViewData["listColors"] = colors; ViewData["dateNow"] = DateTime.Now; ViewData["name"] = "Celine"; ViewData["age"] = 24; return View(); }
页面(ViewData)
<p>My name is <b>@ViewData["name"] </b>,<b>@ViewData["age"]</b>years old.<br/>I like the following colors:</p><ul id="colors">@foreach (var color in ViewData["listColors"] as List<string>){ <li><font color="@color">@color </font></li>}</ul><p>@ViewData["dateNow"]</p>
Controller里边的代码(ViewBag):
List<string> colors = new List<string>(); colors.Add("red"); colors.Add("green"); colors.Add("blue"); ViewBag.ListColors = colors; ViewBag.dateNow = DateTime.Now; ViewBag.Name = "Celine"; ViewBag.Age = 24;
页面(ViewBag)
<p>My name is <b>@ViewBag.Name</b>, <b>@ViewBag.Age</b> years old.<br />I like the following colors:</p><ul id="colors">@foreach (var color in ViewBag.ListColors){<li><font color="@color">@color</font> </li>}</ul><p>@ViewBag.DateNow</p>
在查找资料的过程中发现ViewBag的一个公式,很有意思
ViewBag=ViewData+Dynamic wrapper around the ViewData
两者的对比
从上边的代码中我们也可以看出ViewData是字典集合,存放的是键值对,ViewBag在使用方法上和ViewData几乎一样,但是底层实现确实完全不同,ViewBag最大的有点就是他不需要转型就可以使用里面的值,但是ViewData就需要转换成合适的类型
public ActionResult Index(){ ViewData["message"] = "Hello Word!"; return View();}
string message = ViewData["message"] as string;
我们看表格也可以发现ViewBag存放的不是键值对,而是dynamic动态类型,就如上边的公式所说ViewBag就是封装了的ViewData,所以两者可以相互转换
1.ViewData转换成ViewBag
2.ViewBag转换成ViewData
ViewBag.Students = students;
<h2>Friend List</h2><ul> @foreach (var std in (List<string>)ViewData["Students"]) { <li> @std </li> }</ul>
下一篇,讲解TempData~~
0 0
- MVC页面常见的三种传值方式
- MVC页面常见的三种传值方式(二)
- MVC页面常见三种传值方式——ViewData,ViewBag,TempData
- JSP页面跳转的常见方式
- iOS常见创建页面的方式
- 常见的几种页面布局方式
- iOS-常见的页面传值方式
- .net mvc 注册路由的几种常见方式
- MVC加载子页面方式
- Spring mvc 页面跳转方式
- 页面提示框的几种常见的方式
- Spring MVC jsp 嵌入子页面的两种方式
- 常见的几种页面内容布局方式
- 【MVC】MVC中页面传值的几种方式总结
- MVC中页面传值方式总结
- MVC 向页面传值方式
- MVC中常见的问题
- 有关MVC的常见做法
- 直接内存和堆内存的性能比较
- 数据库的那些事(一)
- LintCode 36 翻转链表 II
- 2017/4/23学习python笔记
- 写在前言--我的博客搭建之路
- MVC页面常见的三种传值方式
- 腾讯云Tomcat配置SSL证书
- 【Untiy&对象】如何实现一个Prefab立方体的6个面不同图案
- 臻于完美的妻子
- Head First 设计模式(九)迭代器与组合模式
- 4月英语的收获
- UI延迟
- poj 1276 (完全背包二进制转化01背包)
- P1118 数字三角形