2013-02-21 132 views

回答

14

默认情况下TempData使用ASP.NET Session作为存储。所以它存储在服务器上(默认为InProc)。但是您可以定义其他ASP.NET会话状态模式:StateServer和SqlServer。如果您不想使用ASP.NET会话,您也可以编写自定义TempData提供程序并自行处理存储。

+0

非常感谢。我将调查更多关于ASP.NET会话状态模式的信息,这对我来说是新的。 – 2013-02-21 14:26:09

5

它存储在会话存储,但TempDataSession之间一个关键的区别:

TempData只对用户会话,所以它仍然存在只有等我们读它,并得到在HTTP请求结束时清除。

符合TempData的使用情况是,数据需要在两个请求之间持续存在 - 重定向场景。我能想到的另一种情况是POST操作失败后返回错误消息。

+0

谢谢,我希望我可以选择多个答案作为接受。 – 2013-02-21 14:26:35

+1

* TempData仅适用于用户的会话,因此只有在我们读取它并在HTTP请求结束时才会清除它。*会话持续时间超过HTTP请求。那么* TempData仅适用于用户会话*正确吗? – 2013-11-17 23:34:58