我不確定它是刪除cookie上的所有內容,還是不從用戶獲取現有的cookie,然後添加並返回。添加到購物車帶有Cookie的功能正在刪除所有內容?
下面是代碼:
[Authorize]
public ActionResult AddToCart(int productId, int quantity)
{
//If the cart cookie doesn't exist, create it.
if (Request.Cookies["cart"] == null)
{
Response.Cookies.Add(new HttpCookie("cart"));
}
//If the cart already has this item, add the amount to it.
if (Request.Cookies["cart"].Values[productId.ToString()] != null)
{
int tmpAmount = Convert.ToInt32(Request.Cookies["cart"].Values[productId.ToString()]);
Response.Cookies["cart"].Values.Add(productId.ToString(), (quantity + tmpAmount).ToString());
}
else
{
Response.Cookies["cart"].Values.Add(productId.ToString(), quantity.ToString());
}
return RedirectToAction("Index");
}
我用的斷點,可以確認的是,如果我在cookie中的項目,然後添加其他不同的項目,代碼運行正常不執行Response.Cookies.Add(new HttpCookie("cart"));
。所以我不認爲我正在創建一個新的cookie。
事實上,我嘗試添加相同的項目,我正確地看到該項目的金額增加,而不是列出兩次。
我覺得我的問題在於寫入現有的cookie?添加另一個項目後
預期結果:
看到在籃下頁面兩項。
實際結果:
見只有我在籃下頁面添加的最新項目。
任何明顯的錯誤?這是我第一次進入cookies。
這並獲得成功,我會回答與我用來解決這個問題的代碼我自己的問題。 – 2012-04-06 15:11:54