【发布时间】:2012-10-29 23:20:49
【问题描述】:
我将 <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 时使用更新的值设置了响应,但请求包含原始值。
正如下面 cmets 中所讨论的,我认为该问题可能是由于引用了静态方法,但我发现 this 解决了该问题。由于我已经提到 HttpContext.Current.Response 在我的实例中这似乎不是问题。
谁能解释一下可能发生了什么?
【问题讨论】:
-
您在请求周期的哪个时间点更改值?
-
值正在通过来自 Page_Init 的调用进行更改。表单是正在呈现的用户控件的集合。
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
标签: c# javascript asp.net .net cookies