为什么这样说,我们不应该在ASP.NET MVC应用程序中使用Session变量 ? 我碰到这个答案这是这么说的。 在这种情况下,我将如何保持整个请求的值一样登录用户信息,并关联到他的帐户一些相关的数据?
这是达林的答案。
你为什么要使用HttpContext.Current在ASP.NET MVC应用程序? 不要使用它。 这是邪恶的,即使在传统的ASP.NET Web表单应用程序,但在ASP.NET MVC这是一个灾难是需要所有的乐趣了这个漂亮的Web框架。
为什么这样说,我们不应该在ASP.NET MVC应用程序中使用Session变量 ? 我碰到这个答案这是这么说的。 在这种情况下,我将如何保持整个请求的值一样登录用户信息,并关联到他的帐户一些相关的数据?
这是达林的答案。
你为什么要使用HttpContext.Current在ASP.NET MVC应用程序? 不要使用它。 这是邪恶的,即使在传统的ASP.NET Web表单应用程序,但在ASP.NET MVC这是一个灾难是需要所有的乐趣了这个漂亮的Web框架。
一个像ASP.NET MVC框架的基本原则是,它们是无状态的 ,就像互联网是。 ASP.NET Web窗体是模仿状态模式在无状态的环境的一种尝试。 这是骗人的 ,换句话说。
在ASP.NET MVC应用程序中使用Session变量有点像绑喇叭一匹马的头,称这是一个独角兽。
您可以使用会话状态持久化数据,TempData的功能使用Session默认坚持数据。
你应该尽量少用会话的尽可能多的,之所以说是锁被采取会话的所有请求以防止会话状态的腐败,例如多个Ajax请求将连载因为这个原因。 更多信息点击这里
您可以使用替代品要求,例如,你可以使用之间保持数据CookieValueProvider ,这是cookie数据绑定到模型MVC期货的一部分。 您也可以坚持在实际的DOM数据为隐藏字段,但这些又应尽量减少尽可能的数据的大小将反映在网络流量和浏览器。
我会考虑使用其他的数据存储为Web应用程序,如果你的主存储是缓慢的。 例如SQLServer的CE或嵌入式RavenDB。