我想在会话中添加对象列表。但是在我的代码中总是创建Fresh Object(列表中总是只有1个项目)
public class CartTotal
{
public decimal SubTotal { get; set; }
public decimal DeliveryCharges { get; set; }
public decimal GrandTotal { get; set; }
public int CurrentItemCount { get; set; }
public List<Items> items { get; set; }
}
public class Items
{
public int ItemId { get; set; }
public string ItemCode { get; set; }
public string ItemName { get; set; }
public string ImageUrl { get; set; }
public int? ItemBadge { get; set; }
public DateTime? AddedDate { get; set; }
public int? AddedBy { get; set; }
}
public CartTotal ItemsHolder
{
get
{
object ItemsSession = Session["ItemSession"] as CartTotal;
if (ItemsSession == null)
{
ItemsSession = new CartTotal();
Session["ItemSession"] = ItemsSession;
}
return (CartTotal)ItemsSession;
}
}
我试图将商品添加到列表中,如下所示。但总是会添加新商品和(列表中总是只有1个商品)
ItemsHolder.items = new List<Items>(); // When i comment this line,below code not working.
ItemsHolder.items.Add(new Items() {
ItemId = items.ItemId,
ItemName = items.ItemName,
ItemPrice = items.ItemPrice,
ImageUrl = items.ImageUrl,
ItemCode = items.ItemCode
});
答案 0 :(得分:3)
在CartTotal
类中,编写
public List<Items> items { get; } = new List<Items>();
这将在每个CartTotal
对象中创建一次新列表。另外,items
属性是只读的。因此,您不能无意中将其添加到另一个列表。
删除行
ItemsHolder.items = new List<Items>();