我有一个非常简单的页面,其中包含以下逻辑:
protected void Page_Load(object sender, EventArgs e)
{
if (null == Response.Cookies["UserSettings"].Value)
{
HttpCookie cookie = new HttpCookie("UserSettings");
cookie.Value = "The Big C";
cookie.Expires = DateTime.Now.AddDays(10);
Response.Cookies.Add(cookie);
}
else
{
// got here
}
}
我在if
和else
设置断点,else
断点永远不会被击中。 if
语句每次都会被命中。这可能有什么问题?
谢谢!
答案 0 :(得分:5)
为什么要检查Response.Cookies
您应该检查Request.Cookies
。响应仍在创建中..
<强>更新强>
请参阅使用 HttpResponse.Cookies 集合添加 Cookie时,HttpRequest.Cookies集合中的Cookie立即可用即使响应尚未发送给客户端。 但您正在检查Collection 中的Cookie,甚至在其添加之前。所以你需要在Request.Cookie Collection
中检查它