我在usercontrol [A]中设置cookie值并读取另一个usercontrol [B]中的值。
但该值仅在服务器端的页面刷新时可用。我可以在firebug cookie选项卡中看到更新的值。
如果我在页面中引用正确的值,则在页面中进行diplaying。
如何解决此问题?以下是我用来读取usercontrol [B]中的cookie的代码。 它始终是旧值而不是我在usercontrol [A]
中设置的新值 HttpCookie cookieTool = Request.Cookies["previousTool"];
string strSessionReturnToolTitle = "";
string strSessionReturnToolURL = "";
if (cookieTool != null)
{
// Response.Write("<BR>Cookie value " + cookieTool["returnToolurl"].ToString());
if (Request.UrlReferrer == null)
{
cookieTool.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(cookieTool);
}
else
{
strSessionReturnToolTitle = cookieTool["returnTooltitle"];
strSessionReturnToolURL = Server.UrlDecode(cookieTool["returnToolurl"]);
}
}
答案 0 :(得分:0)
Request.Cookies
即将到来。 Response.Cookies
即将离任。
Request.Cookies
只知道当前的请求。当您通过Response.Cookies添加以下请求时,我认为它不会更新。
如果Response.Cookies["previousTool"]
为空,您可以尝试通过Request.Cookies["previousTool"]
获取Cookie。
如果这不起作用,您将需要另一种方式,例如将值存储在会话中或HttpContext.Current.Items
。