我将<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,因此它在我的实例中似乎不是问题。
有人可以解释可能会发生什么吗?
答案 0 :(得分:2)
设置值后,请确保将其保存。
HttpCookie cookie = HttpContext.Current.Request.Cookies["cv0_value"]
if (cookie != null)
{
cookie.Value ="0";
HttpContext.Current.Response.Cookies.Add(cookie)
}