如何使用ASP.NET MVC将临时购物车数据存储在缓存中

时间:2017-02-06 18:44:03

标签: jquery asp.net asp.net-mvc-4 caching n-tier-architecture

我正在使用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>
    

    因此将添加临时购物车项目,但问题是当刷新页面时,数据将丢失

    1 个答案:

    答案 0 :(得分:0)

    您可能会对这个问题的看法超过事实,所以这是我的购物车应用程序的实现。

    我通常在数据库中创建 ShoppingCart表 。然后在客户端浏览器中保存购物车内的ID。 注意:我更喜欢ShoppingCart Id的 GUID ,以便恶意用户无法轻易猜到其他购物车。

    此外,如果用户登录,我还将UserId保存在同一个表中,这样用户仍然可以在任何计算机上查看他/她的购物车,例如amazon.com。

    用户结帐成功后,我会将商品从 ShoppingCart 表移至 订单 订单商品 表并清除购物车。

    如果您不想要上述方法,您还可以存储在 会话状态 中。使用会话状态的缺点是,如果客户意外关闭浏览器,App Domain重启或App Pool回收,他/她将不得不重新开始。