Cookie不接受动态数据ASP.net

时间:2014-03-24 08:02:15

标签: asp.net cookies

使用我的Cookie时,我有2个按钮,应该添加一个数字。 使用这个数字我打印购物车。 但是当我打印它时,它只返回1个数字。 如果我插入静态数据它确实有效,但是当我按下两个按钮时,它似乎只添加了1个值。

制作Cookie:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (HttpContext.Current.Request.Cookies["MyTestCookie"] == null)
        {
            HttpCookie myCookie = new HttpCookie("MyTestCookie");
            Response.Cookies.Add(myCookie);
            myCookie.Values.Add("", "1");
            myCookie.Expires = DateTime.Now.AddSeconds(30);
        }


    }


Buttonclick将数据添加到cookie,获得其中两个,Button1添加nr 3,Button2添加nr 2:

    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Cookies["MyTestCookie"].Values.Add("item", "3");
        Response.Write(Request.Cookies["MyTestCookie"].Values.ToString());
    }

按钮点击检查cookie中的数据:

protected void Button3_Click(object sender, EventArgs e)
    {
        string cookies = Request.Cookies["MyTestCookie"].Values.ToString();
        Response.Write("Cookie: "+cookies);
    }

1 个答案:

答案 0 :(得分:0)

我认为你需要这样做:

protected void Button1_Click(object sender, EventArgs e)
{
    Response.Cookies["MyTestCookie"].Values.Add("item", "3");
    Response.Cookies["MyTestCookie"].Expires = DateTime.Now.AddSeconds(30);
    Response.Write(Request.Cookies["MyTestCookie"].Values.ToString());
}

因为离开此方法时cookie被破坏了。设置过期时间可确保它不会立即发生。