【问题标题】:Unable to read the cookie created dynamically in ASP C# application无法读取在 ASP C# 应用程序中动态创建的 cookie
【发布时间】:2015-04-25 06:05:52
【问题描述】:

我通过在按钮单击事件中调用 js 方法(使用 Page.ClientScript.RegisterStartupScript)从后面的代码创建 cookie,一旦创建,我将尝试使用 cookie 值工作我的逻辑,但我无法读取 cookie,直到下一页加载。

C#代码:

protected void submitKey(object sender, EventArgs e)
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", " createCookie('testvalue');", true);
    vendorManagementDiv.Style.Add("display", "block");
    doLogic();
}

private String doLogic{
    var request = HttpContext.Current.Request;
    HttpCookieCollection cookies = request.Cookies;
    foreach (String cookieName in cookies.AllKeys)
    {
        if (cookieName.Equals("testcookie"))
        {
            key = request.Cookies["testcookie"].Value;
        }
    }
    return key;
}

JS函数:

function createCookie(cookievalue)
{
     var expires = "";
     var date = new Date();
     date.setTime(date.getTime() + (1 * 24 * 60 * 60 * 1000));
     expires = ";expires=" + date.toGMTString();
     document.cookie = "testcookie=" + cookievalue+ expires + ";path=/";
}

这里的问题是我无法在调用的 doLogic 方法中读取 cookie 'testcookie' 的值。一旦在同一个帖子中创建了 cookie 值,我想读取它。

但只有在下一篇回帖中,doLogic 方法才能获取 cookie 值。

【问题讨论】:

    标签: javascript c# cookies webforms


    【解决方案1】:

    是不是因为 testCookie 不是 Request.Cookies 的一部分而无法读取?换句话说,您在生成请求后创建了 cookie。在那种情况下,您的新cookie不会不在Request.Cookies列表中,因为当时cookie不存在吗?我想这就是这里发生的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-13
      • 2015-10-04
      • 1970-01-01
      相关资源
      最近更新 更多