MVC C#TempData

Nat*_*Pet 17 c# asp.net-mvc tempdata

有人可以在MVC中解释TempData的用途.据我所知,它的行为与ViewBag相似,但除此之外还有什么作用.

Jak*_*cki 24

TempData意味着一个非常短暂的实例,您只应在当前和后续请求中使用它!由于TempData以这种方式工作,您需要确定下一个请求将是什么,并且重定向到另一个视图是唯一可以保证这一点的时间.因此,使用TempData可靠地工作的唯一方案是重定向时.这是因为重定向会终止当前请求(并将HTTP状态代码302 Object Moved发送到客户端),然后在服务器上创建新请求以提供重定向视图.回顾之前的HomeController代码示例意味着TempData对象可能产生与预期不同的结果,因为无法保证下一个请求源.例如,下一个请求可以来自完全不同的机器和浏览器实例.

http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications


Sam*_*ath 9

ViewBag

允许您创建动态属性

在控制器和视图之间传递数据

调节器

ViewBag.Name= "Lion";

视图

<div>
  <h4>@ViewBag.Name</h4>
 </div>
Run Code Online (Sandbox Code Playgroud)

TempData的

TempData意味着一个非常短暂的实例

您只应在当前和后续请求期间使用它

TempData字典用于在控制器操作之间共享数据

TempData["Name"] = "Lion";
Run Code Online (Sandbox Code Playgroud)

我写了关于this的博客文章.检查如何正确使用Asp.Net MVC TempData?