ASP .net MVC中每个数据存储区的生命周期是多少

Jos*_*osh 6 asp.net-mvc

我已经看到了对这些的一些解释,但没有真正比较它们开始,结束或重叠的地方,或它们使用的好例子.

以下每个数据集的生命周期是多少?我错过了吗?

  • 应用
  • 会议
  • ViewData的
  • TempData的

Rob*_*evy 12

应用程序:只要您的应用程序正在运行.您的应用程序可能会由于各种原因自动关闭并重新启动

会话:只要用户正在积极使用您的网站.这通常由ASP.NET发送的cookie确定,以便为每个用户提供一段时间后过期的唯一ID.有很多方法可以自定义和调整它以满足各种需求

viewdata:只要正在处理当前请求.这用于将数据从控制器发送到视图以立即呈现,因此不会持久化

tempdata:直到读回值或直到处理会话中的下一个请求或会话结束/到期时为止 - 以较快者为准.这是用于在发出重定向时将数据从一个控制器移动到另一个控制器

  • 会话寿命实际上是"只要用户正在主动使用您的站点并且应用程序未重新启动",至少会话数据是否存储在进程中.这似乎是标准配置. (2认同)