首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP MVC Cookie未持久化

ASP MVC Cookie未持久化
EN

Stack Overflow用户
提问于 2009-01-19 07:38:17
回答 2查看 29.4K关注 0票数 56

我有一个ASP MVC应用程序,用一些看似简单的代码来保存和检索cookie,但由于某些原因,它们不会持久。控制器中的代码是:

代码语言:javascript
复制
if (System.Web.HttpContext.Current.Response.Cookies["CountryPreference"] == null)
{
    HttpCookie cookie = new HttpCookie("CountryPreference");
    cookie.Value = country;
    cookie.Expires = DateTime.Now.AddYears(1);
    System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
}

并再次加载它:

代码语言:javascript
复制
if (System.Web.HttpContext.Current.Request.Cookies["CountryPreference"] != null)
{
    System.Web.HttpContext.Current.Request.Cookies["CountryPreference"].Expires = DateTime.Now.AddYears(1);
    data.Country = System.Web.HttpContext.Current.Request.Cookies["CountryPreference"].Value;
}

出于某种原因,cookie总是空的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-02-26 12:03:18

问题出在以下代码中:

代码语言:javascript
复制
if (System.Web.HttpContext.Current.Response.Cookies["CountryPreference"] == null)

当您尝试使用Response object而不是Request检查cookie是否存在时,ASP.net会自动创建cookie。

请查看此处的详细帖子:http://chwe.at/blog/post/2009/01/26/Done28099t-use-ResponseCookiesstring-to-check-if-a-cookie-exists!.aspx

引用这篇文章中的话以防链接再次中断...

简短的解释,如果你不喜欢读整个故事

如果使用类似“If (Response.Cookies”mycookie“!= null) {…){null}“,ASP.Net会在后台自动生成一个名为”mycookie“的新cookie,并覆盖您的旧cookie!始终使用Request.Cookies-Collection来读取cookies!

[ More detail in the article ]

票数 97
EN

Stack Overflow用户

发布于 2013-05-13 22:35:38

在简历中,不要使用"Response“来读取cookie,请使用"Request”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/456807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档