我正在为我的新项目使用.net mvc 4.0。我想知道ViewData,ViewBag和TempData有什么区别?
我尝试在网上搜索,但没有找到任何好的文档材料。
答案 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可用于维护数据 重定向,即从一个控制器重定向到另一个控制器。