クッキーのすべてのコンテンツを消去しているのか、それとも既存のクッキーをユーザーから取り出して追加して戻したらいいのか分かりません。ここでクッキーを含む機能をカートに追加すると、すべてのコンテンツが消去されますか?
はコードです:
[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");
}
私はブレークポイントを使用していると私はクッキーでアイテムを持っているし、別の異なるアイテムを追加する場合、コードが実行されない正しく動作することを確認することができますResponse.Cookies.Add(new HttpCookie("cart"));
。だから私は新しいクッキーを作っているとは思わない。
実際、同じアイテムを追加しようとしていますが、そのアイテムが2回リストされているのではなく、そのアイテムの量が増えているのを正しく見ています。
私の問題は、既存のCookieに書き込むことにあると思いますか?別の項目を追加した後、結果を期待
:
はバスケットページに2つの項目を参照してください。
実際の結果:
は、私はバスケットページに追加のみ、最新の項目を参照してください。
目立った間違いはありますか?これは私の最初のクッキーへの進出です。
これはトリックをした、私はこの問題を修正するために使用されるコードで自分の質問にお答えします。 –