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);
}
非常感谢Olaf,虽然我的应用程序似乎仍然持有一个项目,但确实有帮助。但是我注意到如果我继续添加相同的物品,数量会增加!它只有当我添加另一个项目它重置,是否可以是因为每次都重写cookie并且不能更新? PS:我知道如何在会话中做到这一点,我只是想在我去写ASP.NET认证之前练习我的cookie技巧。 :D – RealityDysfunction 2013-04-29 17:35:16
不,他们不应该被改写。我看不出为什么发生。请尝试以下操作:使用Cookie [ProductID +“_”+ ProductCategory]而不是Cookie [“CartData”] [ProductID +“_”+ ProductCategory]。然后你得到多维数组,并且更容易检查是否有其他错误。 – Olaf 2013-04-30 12:08:08