我的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);
}
答案 0 :(得分:2)
请求使用时的代码
Request.Cookies["CartData"][ProductID + "," + ProductCategory])
在写作时使用
Response.Cookies["CartData"][ProductID + "_" + ProductCategory]
所以你应该在参数中用_替换。
有没有理由不为此使用Session?