asp.net-mvc – 为什么ASP.NET MVC使用会话状态?
推荐由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>; 那么,他们为什么要在这里使用会话?我缺少什么? ================================================== ====== 编辑对不起,这并不意味着这篇文章讨论会话与缓存,而是在ASP.NET MVC的上下文中,我只是想知道为什么会话在这里使用。在这blog post还斯科特Watermasysk提到,关闭会话是一个很好的做法,所以我只是想知道为什么我必须打开使用MVC从这里。 解决方法会话用于TempData存储。 TempData是会话状态的高度限制形式,其将仅持续直到来自某个用户的下一个请求。 (Edit在MVC 2中,它持续到下一次读取。)TempData的目的是存储数据,然后执行重定向,并且存储的数据可供您刚刚重定向的操作使用。对TempData存储使用Session意味着已经处理Session的任何分布式缓存系统将适用于TempData。避免使用Session直接当TempData将做一些几个优点。一个是你不必自己清理会话; TempData将自动“过期”。 (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何将XML作为POST传递给ASP MVC .NET中的A
- asp.net – 脚本标签和链接标签进入asp:内容或外部
- azure – 获取#error = unsupported_response_typeerror_de
- 在asp.net c#应用程序中使用Graphviz Dll
- .Net平台开发的技术规范与实践精华
- asp.net-mvc-3 – DropDownListFor Unobtrusive Validation
- WPF 增加合计一栏
- asp.net-mvc – ASP.NET MVC:Action中的授权 – 建议的模式
- asp.net-mvc – 如何在ASP.NET MVC中生成弹出页面链接
- ASP.NET 2.0或3.5?
- ASP.NET 2.0和4.0似乎在Forms身份验证中以不同方
- asp.net-mvc – 使用Viewbag绑定DropdownlistFor
- asp.net – 有没有比升级到Visual Studio 2010 U
- 密码由6-12位数字或字母组成,密码哈希加密
- asp.net-mvc – 如何设置AntiForgeryToken cooki
- asp.net-web-api – Web Api:找不到System.Net.
- 如何以编程方式将ListItems添加到ASP.NET中的Dro
- asp.net – 自动将视频格式转换为Flash Video
- asp.net – 为不同项目中的所有Web应用程序网页添
- Asp.net Core 1.1 升级后操作mysql出错的解决办法