我只需要为每个用户显示前 3 次信息。当该用户下次访问该站点时,他不应该看到此信息。我使用 cookie 来实现这个目标。
ViewBag.HelpShow = true;
if (this.ControllerContext.HttpContext.Request.Cookies.AllKeys.Contains("ecCount"))
{
int count = 0;
if (Int32.TryParse(this.ControllerContext.HttpContext.Request.Cookies["ecCount"].Value, out count))
{
if (count >= 3)
ViewBag.HelpShow = false;
}
count++;
this.ControllerContext.HttpContext.Response.Cookies["ecCount"].Value = count.ToString();
}
else
{
HttpCookie cCount = new HttpCookie("ecCount", "1");
cCount.Expires = DateTime.Now.AddYears(10);
this.ControllerContext.HttpContext.Response.Cookies.Add(cCount);
}
但我遇到了问题。问题是这些 cookie 存储在浏览器中,直到打开该浏览器。如果我关闭浏览器并重新启动,这些 cookie 将被删除。所以问题是 - 如何保存 cookie 将始终保存 - 并且在重新启动浏览器之后。