多值饼干,不是那么多值?

时间:2013-04-29 02:19:16

标签: asp.net httpcookie

我的cookie似乎确实创建了它并且它确实存储了值,但只存储了最后一个值,所以基本上它总是包含1个项目,当我尝试添加另一个时它只是替换了1个项目。 我的代码如下,任何想法都表示赞赏。

    if (Request.Cookies["CartData"] == null)
    {
        HttpCookie NewCookie = new HttpCookie("CartData");
        Response.Cookies.Add(NewCookie);
    }
    /* Process Queries */
        int Qty;
        if (Request.QueryString["Action"] == "AddToCart")
        {
            string ProductID = Request.QueryString["ProductID"];
            string ProductCategory = Request.QueryString["Category"];

            /* Check if Quantity entered is a valid number, if not set to 1 */
            if (!int.TryParse(Request.QueryString["Qty"], out Qty))
            {
                Qty = 1;
            }

            /* Check if the item already exists in Cart */
            if (Request.Cookies["CartData"][ProductID + "_" + ProductCategory] != null)
            {
                int tempQty;
                tempQty = int.Parse(Request.Cookies["CartData"][ProductID + "," + ProductCategory]);
                tempQty += Qty;
                Response.Cookies["CartData"][ProductID + "_" + ProductCategory] = tempQty.ToString();
            }
            else
            {
                Response.Cookies["CartData"][ProductID + "_" + ProductCategory] = Qty.ToString();
            }
            Response.Cookies["CartData"].Expires = DateTime.Now.AddDays(1);

        }

1 个答案:

答案 0 :(得分:2)

请求使用时的代码

Request.Cookies["CartData"][ProductID + "," + ProductCategory])

在写作时使用

Response.Cookies["CartData"][ProductID + "_" + ProductCategory]

所以你应该在参数中用_替换。

有没有理由不为此使用Session?