ViewData,ViewBag和TempData有什么区别?

时间:2015-02-03 12:49:17

标签: asp.net asp.net-mvc

我正在为我的新项目使用.net mvc 4.0。我想知道ViewData,ViewBag和TempData有什么区别?

我尝试在网上搜索,但没有找到任何好的文档材料。

1 个答案:

答案 0 :(得分:4)

来自Top 10 ASP.NET MVC Interview Questions

  

为了将数据从控制器传递到视图以及随后的数据   请求,ASP.NET MVC框架提供了不同的选项,即   ViewData,ViewBag和TempData。

     

ViewBag和ViewData都用于控制器之间的通信   和相应的观点。但这种通信仅适用于服务器   如果发生重定向,它将变为null。所以,简而言之,它是一个   控制器与相应视图之间保持状态的机制。

     

ViewData是一个字典对象,而ViewBag是一个动态属性(a   新的C#4.0功能)。可以访问作为字典对象的ViewData   使用字符串作为键,还需要对复杂类型进行类型转换。   另一方面,ViewBag没有进行类型转换和空检查。

     

TempData也是一个字典对象,它保留了一段时间   HTTP请求。因此,Tempdata可用于维护数据   重定向,即从一个控制器重定向到另一个控制器。