我正在使用N-Tier架构与ADO.NET和MVC进行项目 但不知道如何执行缓存
请以某种方式建议我
var cartdata = '<li id="product-item">' +
'<img id="ud-product-image1" src=' + data["FilePath"] + data["FileName"] + ' alt="">' +
'<a hidden id="ud-product-image">' + data["FilePath"] + data["FileName"] + '</a>' +
'<button onclick="return Removepart();" id="btnclose" type="button" class="close">×</button>' +
'<div class="overflow-h">' +
'<span id="ud-product-name">' + data["Name"] + '</span>' +
'<small id="ud-cart-product-price">1 x $' + data["MRP"] + '</small>' +
'</div>' +
'</li>';
$("#mCSB_1_container").append(cartdata);
<div class="shop-badge badge-icons pull-right">
<a href="#"><i class="fa fa-shopping-cart"></i></a>
<span id="countitem" class="badge badge-sea rounded-x"><div id="counter">0</div></span>
<div class="badge-open">
<ul id="total-item" class="list-unstyled mCustomScrollbar" data-mcs-theme="minimal-dark">
<div id="Empty-Cart-Image">
<img src="~/Contents/img/empty_cart.jpg" style="height:150px;width:320px;" />
</div>
<!--// Actual Shopping Item Loaded here -->
<!-- Each time <li> portion will be added-->
</ul>
<div class="subtotal">
<div class="overflow-h margin-bottom-10">
<span>Subtotal</span>
<span class="pull-right subtotal-cost">$1200.00</span>
</div>
<div class="row">
<div class="col-xs-6">
<a href="shop-ui-inner.html" class="btn-u btn-brd btn-brd-hover btn-u-sea-shop btn-block">View Cart</a>
</div>
<div class="col-xs-6">
<a href="shop-ui-add-to-cart.html" class="btn-u btn-u-sea-shop btn-block">Checkout</a>
</div>
</div>
</div>
</div>
</div>
因此将添加临时购物车项目,但问题是当刷新页面时,数据将丢失
答案 0 :(得分:0)
您可能会对这个问题的看法超过事实,所以这是我的购物车应用程序的实现。
我通常在数据库中创建 ShoppingCart表 。然后在客户端浏览器中保存购物车内的ID。 注意:我更喜欢ShoppingCart Id的 GUID ,以便恶意用户无法轻易猜到其他购物车。
此外,如果用户登录,我还将UserId保存在同一个表中,这样用户仍然可以在任何计算机上查看他/她的购物车,例如amazon.com。
用户结帐成功后,我会将商品从 ShoppingCart 表移至 订单 和 订单商品 表并清除购物车。
如果您不想要上述方法,您还可以存储在 会话状态 中。使用会话状态的缺点是,如果客户意外关闭浏览器,App Domain重启或App Pool回收,他/她将不得不重新开始。