我正在使用会话来实现购物车。添加到购物车似乎效果很好,但是当我从购物车中删除商品时遇到了问题。当我使用浏览器后退按钮返回上一页然后返回购物车页面时,我再次看到以前删除的项目。我看到有解决方案可以禁用对所有 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>