如果我的问题太基础,我仍在学习如此教学,但我无法在谷歌上找到答案.我找到的每个答案都显示了我已经拥有的代码.
我正在尝试创建和阅读cookie,我已将此代码放在我的应用程序构造函数中.这是我尝试初始化我的cookie并将其添加到浏览器的方式.
的global.asax.cs
public MyApplication() { mycookie = new httpcookie("UserSettings"); mycookie.Value = "nl"; mycookie.Expires = DateTime.Now.AddDays(1d); Response.cookies.Add(mycookie); }
HomeController.cs中的一个方法(试图读取cookie)
public voID setLang(string lang) { httpcookie mycookie = Request.cookies["UserSettings"]; mycookie.Value = lang; //rest of method
我在Response.cookies.Add(mycookie)收到错误;
[httpException(0x80004005):在此上下文中无响应.]
我的想法是,我可能忘记导入命名空间或其他东西,但我没做什么似乎解决了这个错误,有人能指出我正确的方向吗?
解决方法 您不能使用Global.asax构造函数向Response添加cookie,因为在应用程序开始处理http请求之前调用了Global.asax构造函数.将代码从Global.asax构造函数移动到Application_BeginRequest方法:
public voID Application_BeginRequest(){ mycookie = new httpcookie("UserSettings"); mycookie.Value = "nl"; mycookie.Expires = DateTime.Now.AddDays(1d); Response.cookies.Add(mycookie);}
Global.asax有许多不同的事件被触发,你只是错误地选择了.
> Application_Init:第一次初始化应用程序时触发.
> Application_Start:第一次启动应用程序时触发.
> Session_Start:用户会话启动时第一次触发.
> Application_BeginRequest:每次有新请求进入时触发.
> Application_EndRequest:请求结束时触发.
> Application_AuthenticateRequest:表示请求已准备好进行身份验证.
> Application_Error:在应用程序中发生未处理的错误时触发.
> Session_End:单个用户会话结束或超时时触发.
> Application_End:应用程序结束或超时时触发(通常用于应用程序清理逻辑).
(自http://en.wikipedia.org/wiki/Global.asax起)
总结以上是内存溢出为你收集整理的c# – 读/写Cookies全部内容,希望文章能够帮你解决c# – 读/写Cookies所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)