无法更改javascript中设置的cookie值?

时间:2012-11-09 15:58:16

标签: c# javascript asp.net .net cookies

我将<asp:CheckBox OnClick="">设置为执行以下操作的JavaScript函数:

document.cookie = "cv0_value=1";

我正在以下列方式检查.Net代码隐藏中的此值,并且所有内容似乎都正常工作。

cv0_value = Request.Cookies["cv0_value"].Value == "0" ? false : true;

问题在于,当我尝试稍后重置.Net代码隐藏中的值时,它似乎不会影响cookie。

HttpContext.Current.Request.Cookies["cv0_value"].Value = "0";

在代码隐藏中再次检查值时,我发现它仍然设置为JavaScript中设置的原始值。

我还尝试重复调用Page_Load方法,检查请求和响应。尽管在再次调用Page_Load时使用更新的值设置Response,但Request包含原始值。

正如下面的评论中所讨论的,我认为这个问题可能是由于静态方法的引用,但我发现this解决了这个问题。由于我已经在引用HttpContext.Current.Response,因此它在我的实例中似乎不是问题。

有人可以解释可能会发生什么吗?

1 个答案:

答案 0 :(得分:2)

设置值后,请确保将其保存。

HttpCookie cookie = HttpContext.Current.Request.Cookies["cv0_value"]
if (cookie != null)
{
   cookie.Value ="0";
   HttpContext.Current.Response.Cookies.Add(cookie)
}