我正在使用.NET MVC 4.0开发我的新项目。我想知道ViewData、ViewBag和TempData之间的区别是什么?
我尝试在网络上搜索,但没有找到任何好的文档资料。
我尝试在网络上搜索,但没有找到任何好的文档资料。
从前10个ASP.NET MVC面试问题中,为了将数据从控制器传递到视图并在下一个请求中使用,ASP.NET MVC框架提供了不同的选项,即ViewData、ViewBag和TempData。
ViewBag和ViewData都用于控制器和相应视图之间的通信。但是,这种通信仅限于服务器调用,如果重定向发生,则会变为null。因此,简而言之,它是一种在控制器和相应视图之间维护状态的机制。
ViewData是一个字典对象,而ViewBag是一个动态属性(C# 4.0的新功能)。ViewData作为一个字典对象,可以使用字符串作为键,并且对于复杂类型需要进行类型转换。另一方面,ViewBag没有类型转换和空检查。
TempData也是一个字典对象,它在HTTP请求的时间内保持不变。因此,Tempdata可用于在重定向之间维护数据,即从一个控制器到另一个控制器。