TempData存储在ASP.NET MVC框架中(更具体地说,ASP.NET MVC 2)?它是存储在服务器端,还是发送到客户端?
答案 0 :(得分:14)
默认情况下,TempData使用ASP.NET会话作为存储。因此它存储在服务器上(InProc
是默认值)。但您可以定义其他ASP.NET会话状态模式:StateServer和SqlServer。如果您不想使用ASP.NET会话,您还可以编写自定义TempData提供程序并自行处理存储。
答案 1 :(得分:5)
它存储在会话存储中,但TempData
和Session
之间存在一个重要区别:
TempData
仅适用于用户的会话,因此只有在我们阅读之后才会保留,并在HTTP请求结束时清除。
符合TempData
用法的方案是,数据需要在两个请求之间持续存在 - 重定向方案。我能想到的另一种情况是在POST操作失败后返回错误消息。