1

我有一<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 时使用更新的值设置了响应,但请求仍包含原始值。

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

有人可以解释可能发生的事情吗?

4

1 回答 1

2

设置值后,请确保保存它。

HttpCookie cookie = HttpContext.Current.Request.Cookies["cv0_value"]
if (cookie != null)
{
   cookie.Value ="0";
   HttpContext.Current.Response.Cookies.Add(cookie)
}
于 2012-11-09T16:48:31.750 回答