一个页面内Response写了Cookie,然后在其他页面无法通过Response.Cookies访问(使用同一个布局页)
//控制器
public ActionResult XXView()
{
Response.Cookies["xxx"].Value = "xx";
Response.Cookies["xxx"].Expires = DateTime.Now.AddDays(1);
return View();
}
//布局页
@if (Response.Cookies["xxx"].Value == "xx")
{
}
傻啊,肯定无法访问啊,Cookie是存储在客户端的,居然想通过Response来访问。。。
然后又有个缓存的问题,进入cookie设置页面,更新了cookie
此时布局页的Request无法获取最新的cookie,需要重刷一次页面
@if (Request.Cookies["xxx"].Value == "xx")
{
}
此时我们可以直接在控制器设置cookie的地方直接设置Request.Cookies
即可避免
public ActionResult XXView()
{
Request.Cookies["xxx"].Value = "xx";
Response.Cookies["xxx"].Value = "xx";
Response.Cookies["xxx"].Expires = DateTime.Now.AddDays(1);
return View();
}