MVC数据传递
一、数据传递
1、ViewData[]:
用法:action中:ViewData["key"]="aaa";,V层接收ViewData["key"]
与ViewBag的区别:
viewdata | viewbag |
它是key/value字典集合 | 它是dynamic类型对象 |
从asp.net mvc1就有了 | 从asp.netmvc3才有 |
基于asp.netframework 3.5 | 基于asp.net framework4.0 |
viewdata比viewbag快 | viewbag比viewdata慢 |
页面查询数据时需要转换合适的类型 | 在页面查询数据时不需要转换合适的类型 |
有一些类型转换代码 | 可读性较好 |
ViewData["key"] | ViewBag.key |
①、ViewBag其实本质就是ViewData,只是多了层Dynamic控制。所以,使用何种方式完全取决于你的个人爱好。
②、ViewBag和ViewData仅针对当前Action中有效,生命周期和view相同。
2、TempData[]
像Session一样使用,效果和Session一样是全局变量
只要取一遍值,就会自动销毁
3、强类型:
action:
public ActionResult Update(string id) { Users u = new UsersData().Select(id); return View(u);//强类型传递值 }
在视图层中:
首先需注明对象:@Model Users
然后取值:@Model.Username;