如何在没有页面刷新的情况下获取cookie值

时间:2013-01-29 18:06:57

标签: c# httpcookie

我在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"]);
        }
    }

1 个答案:

答案 0 :(得分:0)

Request.Cookies即将到来。 Response.Cookies即将离任。

Request.Cookies只知道当前的请求。当您通过Response.Cookies添加以下请求时,我认为它不会更新。

如果Response.Cookies["previousTool"]为空,您可以尝试通过Request.Cookies["previousTool"]获取Cookie。

如果这不起作用,您将需要另一种方式,例如将值存储在会话中或HttpContext.Current.Items