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"));
ます。だから私は新しいクッキーを作成しているとは思わない.
実際、同じアイテムを追加しようとしましたが、そのアイテムを 2 回リストするのではなく、そのアイテムの金額が増加していることを正しく確認しています。
私の問題は、既存の Cookie への書き込みにあると思いますか?
別のアイテムを追加した後の期待される結果:
かごページで 2 つのアイテムを表示します。
実結果:
バスケット ページに追加した最新のアイテムのみを表示します。
明らかな間違いはありますか?これはクッキーへの私の最初の進出です。