1

我在用户控件 [A] 中设置 cookie 值并读取另一个用户控件 [B] 中的值。

但是该值仅在服务器端的页面刷新时可用。我可以在 firebug cookie 选项卡中看到更新的值。

如果我引用页面,则正确的值正在页面中显示。

如何解决这个问题?下面是我用来读取用户控件 [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"]);
        }
    }
4

1 回答 1

0

Request.Cookies即将到来。Response.Cookies正在传出。

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

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

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

于 2013-01-29T18:13:11.303 回答