AspNet:Cookie值没有更改
本文关键字:Cookie AspNet | 更新日期: 2023-09-27 18:27:28
cookie的值不会改变。我使用的是localhost。我正在调试使用Visual Studio 2013。
我对属性使用以下模式:
public int ModeIdx
{
get
{
return Convert.ToInt32(Page.Request.Cookies["keksGS"].Values["modIdx"]);
}
set
{
Page.Response.Cookies["keksGS"].Values["modIdx"] = value.ToString();
}
}
即使是一个简单的ModeIdx++
也不起作用。ModeIdx
保持旧值。keksGS
cookie已正确初始化。
我最初的想法是"Firefox 42.0"浏览器没有足够的时间更新cookie(Page.Request
保留旧值)。因此,我添加了Page.Response.Flush();
。一切都没有改变。
我最近的想法是我错过了一件基本的事情。我想不出是什么。
你能在这件事上帮我吗?
谢谢!
由于此值仅由服务器使用,并且ASP.NET已经添加cookie来跟踪会话(假设它没有被明确禁用),因此您可以简单地利用Session
功能。
将您的实现更改为以下内容:
public int ModeIdx
{
get
{
var result = Session["modIdx"] as int?;
return result ?? 0; //Default to 0 if we can't cast to int, or the value was never set.
}
set { Session["modIdx"] = value; }
}