1

我的 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);

        }
4

1 回答 1

2

请求您使用时在您的代码中

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

而在写作时你使用

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

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

有什么理由不为此使用 Session 吗?

于 2013-04-29T06:19:56.540 回答