1、ViewBag
ViewBag 是 MVC3 新增语法,生命周期和view相同,ViewBag 不再是字典的键值对结构,而是 dynamic 动态类型,它会在程序运行的时候动态解析。
public ActionResult Index() { ViewBag.Message = "Welcome to ASP.NET MVC!"; return View(); }
在视图中
<h2>@ViewBag.Message</h2>
public ActionResult Index() { ViewData["Message"]= "Welcome to ASP.NET MVC!"; return View(); }
2、ViewData
只能在一个Action中设置,在相关的视图中获取,只对当前视图有效,生命周期和view相同
public ActionResult Index() { ViewData["Message"]= "Welcome to ASP.NET MVC!"; return View(); }
在视图中
<h2>@ViewData["Message"]</h2>
Tag:ViewBag和ViewData使用的是同一个字典集合,所以ViewBag.Message=ViewData["Message"]
3、TempData
临时数据传递。TempData 的数据至多只能经过一次Controller传递,并且每个元素至多只能被访问一次,访问以后,自动被删除,TempData实质上是保存在session中,每次读取都是从session中获取并删除
用法和ViewData相似,这里就不贴了
4、model
model传递数据可以解决强类型数据传递,通过view()方法传递实例化对象到视图中