明志唯新

ASP.NET MVC 2 中 TempData 的生命周期

发表于

在 ASP.NET MVC 2 中发生一些变化,当在一个 Action 中设置了某 TempData 的值,在读取它之前,它将一直存在,

  • 在同一个 HTTP Request 内可以读取多次,该次 Request 结束的时候会执行销毁动作
  • 但,返回类型为 RedirectResult 或 RedirectToRouteResult MVC 会执行 Keep() ,保留 TempData 到下一页

这比较适合两个 Action 之间传值。当然了,在一个页面中读取时允许多次读取,也就是在 ViewPage 中可以多次读取 TempData,但下个页面对不起将无法读取,因为已经自毁了,呵呵。

谢谢 Will 的纠正,已经对内容进行了更新:)