推荐使用缓存而不是会话,ASP.NET团队建议我们在过去的几年里停止使用会话来处理WebForm模型。因此,我们通常会在web.config中关闭会话。
<sessionState mode="Off" />
但是,现在我正在测试一个使用此设置的ASP.NET MVC应用程序,它在mvc框架内的SessionStateTempDataProvider
类中抛出错误,要求我打开会话状态,我这样做了,并且它可以工作。查看源代码,它使用会话:
// line 20 in SessionStateTempDataProvider.cs
Dictionary<string, object> tempDataDictionary =
httpContext.Session[TempDataSessionStateKey] as Dictionary<string, object>;
那么,为什么他们在这里使用session?我漏掉了什么吗?
========================================================
编辑 很抱歉本帖并不是要辩论session与cache的优劣,而是在ASP.NET MVC的上下文中,我想知道为什么这里要使用session。Scott Watermasysk在这篇博客文章中也提到,关闭session是一个好习惯,所以我想知道为什么我必须开启它才能从这里开始使用MVC。