ASP.NET 团队建议使用缓存而不是会话,在过去几年中,我们停止使用会话来处理 WebForm 模型。所以我们通常在 web.config 中关闭会话
<sessionState mode="Off" />
但是,现在当我使用此设置测试 ASP.NET MVC 应用程序时,它会SessionStateTempDataProvider
在 mvc 框架内的类中引发错误,它要求我打开会话状态,我做到了,它工作了。查看它使用会话的源代码:
// line 20 in SessionStateTempDataProvider.cs
Dictionary<string, object> tempDataDictionary =
httpContext.Session[TempDataSessionStateKey] as Dictionary<string, object>;
那么,他们为什么要在这里使用 session 呢?我错过了什么?
==================================================== ======
编辑对不起,这篇文章并不是要讨论会话与缓存,而是在 ASP.NET MVC 的上下文中,我只是想知道为什么在这里使用会话。在这篇博文中,Scott Watermasysk 还提到关闭会话是一种很好的做法,所以我只是想知道为什么我必须打开它才能从这里开始使用 MVC。