Hap*_*ppy 36 session-state asp.net-mvc-3
为什么说我们不应该在ASP.NET MVC应用程序中使用Session变量?我偶然发现了这个答案.在这种情况下,我将如何维护诸如登录用户信息和与其帐户相关的一些相关数据等请求的值?
这是达林的回答.
为什么在ASP.NET MVC应用程序中使用HttpContext.Current?永远不要使用它.即使在经典的ASP.NET webforms应用程序中,这也是邪恶的,但在ASP.NET MVC中,这是一个让这个漂亮的Web框架带来所有乐趣的灾难.
Rob*_*vey 28
ASP.NET MVC等框架的基本原则之一是它们是无状态的,就像Web一样.ASP.NET Web Forms试图模仿无状态环境中的有状态范例.换句话说,这是一个谎言.
在ASP.NET MVC应用程序中使用Session变量有点像将一个号角绑在马的头上,并将其称为Unicorn.
小智 7
您可以使用会话状态来保存数据,TempData功能使用Session作为默认值来保存数据.
您应该尽可能地减少会话的使用,原因是会话对所有请求进行锁定以防止会话状态损坏,例如多个Ajax请求将因此而串行化.更多信息在这里
您可以使用替代方法在请求之间保留数据,例如,您可以使用CookieValueProvider,它是MVC Futures的一部分,用于将cookie数据绑定到模型.您还可以将实际DOM中的数据保存为隐藏字段,但同样应尽可能地将这些数据最小化,因为数据大小将反映在进出浏览器的网络流量中.
如果您的主要商店很慢,我会考虑为您的Web应用程序使用另一个数据存储.例如SQLServer CE或嵌入式RavenDB.
归档时间: |
|
查看次数: |
36801 次 |
最近记录: |