asp.net-mvc – asp.net mvc无法访问基本控制器中的cookie数据
对于每个请求的页面,我需要检查一个cookie或创建它,如果它不存在.
如果cookie在那里,我需要根据该cookie的内容从DB加载一些信息. 为此,我创建了一个名为AppController的基本控制器,我的其他控制器继承自该控制器. 然后我有类似的东西(所以我的所有控制器都可以使用CurrentSessionValues对象): public MySession CurrentSessionValues; public ApplicationController() { if (Request.Cookies["MySiteCookie"] == null) { // create new Record in DB CurrentSessionValues = CreateMySession(); HttpCookie cookie = new HttpCookie("MySiteCookie"); cookie.Value = CurrentSessionValues.SessionID.ToString; Response.SetCookie(cookie); } else { // use the value in MySiteCookie to get values from the DB // e.g. logged in user id,cart id,etc } } 当我运行它时,我在default.aspx中收到此错误:
它在Request.Cookies [“MySiteCookie”]上中断 我应该以其他方式或其他地方做这个逻辑吗? 解决方法
技巧是你必须在构造函数中没有上下文.相反,您应该重写Initialize方法:
protected override void Initialize(System.Web.Routing.RequestContext requestContext) { //check request context for cookie and do your thang. } PS:对于子孙后代,我应该注意为什么会有错误.异常信息的关键部分是在创建控制器时发生错误,在这种情况下,无参数构造函数位是红色鲱鱼.发生的错误是HttpContext的空引用异常. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 检查表单是否有密钥?
- asp.net – TextBox或Html区域中的换行符
- asp.net – 如何绕过糟糕的数据库架构?
- asp.net-mvc – 经典ASP和MVC并排,不同的项目?
- asp.net-core – 如何编写包含其他标记帮助程序的自定义ASP
- asp.net – SqlConnection localhost用户名失败
- asp.net-mvc-4 – Captcha MVC 4刷新按钮未显示
- asp.net-mvc – 返回对象名称为MVC的Json Result
- asp.net-mvc – 使用ASP.NET MVC的BlueImp jQuery上传
- asp.net-mvc – ASP.NET MVC解决方案组织