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

衣明志 发表于 , 阅读 (17106)

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

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

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

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

1 条评论
Will 保哥
Will 保哥 2010-06-21 04:38
在 ASP.NET MVC 2 并非【一旦读取则立即销毁】,而是在同一个 HTTP Request 内可以读取多次,该次 Request 结束的时候才会执行销毁动作。