2011-01-26 88 views
1

/获取值我有以下逻辑非常简单的页面:无法设置cookie的从

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 
    } 
} 

我在两个ifelse设置断点和else断点从来没有被击中。每一次都会触发if声明。这里有什么可能是错的?

谢谢!

+2

中检查它Request.Cookies和Response.Cookies都具有相同的值吗?我认为他们可以,但可以仔细检查一下Request.Cookies是否可以给你返回cookie? – 2011-01-26 18:55:53

+0

请求给出正确的值(The Big C)。我应该使用Request而不是Response来阅读cookie吗? – 2011-01-26 19:01:02

回答

5

你为什么要检查Response.Cookies你应该检查Request.Cookies。响应仍在创建..

更新

看,当你使用HttpResponse.Cookies收集Cookie添加,饼干立即是HttpRequest.Cookies收集提供 ,即使响应尚未发送给客户端。 但是即使在添加之前,您也正在检查Collection 中的Cookie。所以Yu需要在Request.Cookie Collection