0

みなさん、こんにちは...ASP.NETMVCは初めてです。疑問が1つあります。 EFを使用せずに、 MVC razorMyHome コントローラークラスを使用してショッピングカートに商品を追加する

    public void AddOrderItem(Int64 ID, int quantity)
    {            
        OrderDO order = (OrderDO)Session["Order"];
        order.Items.Add(new OrderItem(ID, quantity));
        Session["Order"] = order;  
    }
}
 public class OrderDO
    {
        private IList<OrderItem> _items;
        public OrderDO()
        {
            this._items = new List<OrderItem>();
        }
        public IList<OrderItem> Items
        {
            get { return this._items; }
        }
    }
    public class OrderItem
    {
        public OrderItem()
        {
        }
        public OrderItem(Int64 ID, int quantity)
        {
            this.ID= ID;
            this.Quantity = quantity;
        }
        public Int64 ID{ get; set; }
        public int Quantity { get; set; }
    }

製品ページの私のスクリプトは

$(document).ready(function () {
        $('#AddToCard').click(function () {
            var ProductID = $('#txtproductID').val();
            var Quantity = $('#txtQuantity').val();

            $.ajax({
                type: "POST",
                url: '../Home/AddOrderItem',
                data: { ID: ProductID, quantity: Quantity },
                success: function (data) {

                    if (data) {

                    }
                }
            });
        });

上記のコードでは正しく機能しています。ショッピングカートボタンをクリックしています。詳細ショッピングリストを取得する方法

        public ActionResult Details(int id)
        {
            OrderDO order = (OrderDO)Session["Order"];

            return View();
        }
4

1 に答える 1

1

モデルとしてビューに渡すことができます。

public ActionResult Details(int id)
{
    OrderDO order = (OrderDO)Session["Order"];
    return PartialView(order.Items);
}

これはこのモデルに強く型付けされ、詳細を表示できます。

@model IEnumerable<OrderItem>
@ {
    var grid = new WebGrid(Model);
}

@grid.GetHtml()

successまた、AJAXを使用してこのコントローラーアクションを呼び出しているように見えるので、コールバックのDOMに結果を挿入することを忘れないでください。

$.ajax({
    type: "POST",
    url: '../Home/AddOrderItem',
    data: { ID: ProductID, quantity: Quantity },
    success: function (data) {
        $('#someContentPlaceholder').html(data);
    }
});
于 2013-02-07T14:41:55.803 に答える