向模型和会话添加更多项目

时间:2019-01-10 02:37:21

标签: c# asp.net asp.net-mvc razor shopping-cart

在我的购物车中,我已通过Session传递数据。在这里我遇到了一个问题,购物车中还有2个其他字段。如何将其添加到模型中,因为模型未绑定到该视图。

模型

public class CartTotal
{
    public decimal SubTotal { get; set; }
    public decimal DeliveryCharges { get; set; }
    //Some properties here
    public List<Items> items { get; } = new List<Items>();
}

public class Items
{
    public int ItemId { get; set; }
    public string ItemCode { get; set; }
    public string ItemName { get; set; }
    public string PersonalizedName { get; set; }
    public string Size { get; set; }

}

在进入购物车之前,我已经使用ItemsHolder添加了物品。

ItemHolder

 public CartTotal ItemsHolder
 {
        get
        {
            object ItemsSession = Session["ItemSession"] as CartTotal;

            if (ItemsSession == null)
            {
                ItemsSession = new CartTotal();
                Session["ItemSession"] = ItemsSession;
            }

            return (CartTotal)ItemsSession;
        }
}

我在项目添加部分添加了以下项目,

public ActionResult AddNewItems(int ItemId,string Dir)
{
   ItemsHolder.items.Add(new Items() {
                ItemId = items.ItemId,
                ItemName = items.ItemName,
                ItemPrice = items.ItemPrice,
                ImageUrl = items.ImageUrl,
                ItemCode = items.ItemCode
            });
   return RedirectToAction("Index", "Home");
}

现在的问题是我已经在购物车中使用了ItemSession,并且在Items dto中有2个名为PersonalizedName和Size的属性,这些字段在购物车部分中填充了它,我需要将这些东西添加到ItemHolder中。这样做吗?

我的_cart部分视图

@{
    var list = Session["ItemSession"] as XYZ.Domain.CartTotal;
}
@using (Html.BeginForm("CartFinalize", "Home"))
{
            @foreach (var item in list.items)
            {
                // Some Codes here
                <td class="cart-itm">
                    <input type="text" class="form-control personalizedName" placeholder="Personalized Name">
                </td>
                <td class="cart-itm">
                    <input type="text" class="form-control size" placeholder="Size">
               </td>
          }
}

我需要将这2个项目添加到购物车中的“特定”项目。

0 个答案:

没有答案