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;

原文地址:https://www.cnblogs.com/1711643472qq/p/6179842.html