セッションを使用してショッピングカートを実装しています。カートへの追加はうまくいっているようですが、カートからアイテムを削除すると問題が発生します。ブラウザの戻るボタンを使用して前のページに戻り、カート ページに戻ると、以前に削除したアイテムが再び表示されます。もちろん、すべてのMVCプロジェクトへのキャッシュを無効にする解決策があることがわかりましたが、これは望ましくありません。他の解決策は、カートをデータベースに保存することですが、匿名ユーザーがショッピングカートを持つことを許可しているため、それは良い解決策ではありません。これは、ショッピング カート ビューのコードの一部です。
@model Project.Model.ShoppingCart
foreach (var item in Model._linecollection)
{
var totalForProduct=((item.Product.Price / 100.0)*item.Quantity);
total+=totalForProduct;
<tr>
<td>@item.Product.Name</td>
<td><input class=input-mini type="number" value="@item.Quantity" /></td>
<td>@(item.Product.Price / 100.0) </td>
<td>@totalForProduct</td>
<td>
@using(Html.BeginForm("RemoveFromCart","Cart",FormMethod.Post,new {@id="form"}))
{
<input type="hidden" name="productId" value="@item.Product.Id" class="pToDelete">
<button type="submit" class="deleteFromCart">Delete</button>
}
</td>
</tr>