对象未添加到集合中

时间:2012-12-24 10:59:30

标签: c# asp.net-mvc collections

我在Session中有一个Object,即currentCustomer,如下所示。

public Customer currentCustomer 
        {
            get 
            {
                if (Session["currentCustomer"] == null) return new Customer();
                else 
                   return (Customer)Session["currentCustomer"];
            }
            set 
            {
                Session["currentCustomer"] = value;
            }
        }

我还有一个MVC4操作,将地址添加到客户的地址列表中。

    [HttpPost]
    public JsonResult CustomerAddressSave()
    {
            Address address  = new Address();
            if (TryUpdateModel<Address>(address))
            {
                UpdateModel<Address>(address);
            }
            currentCustomer.AddressList.Add(address); //Not Adding into the List.
            return Json(new { success = true }, JsonRequestBehavior.AllowGet);
    }

令人惊讶的是,上面的代码没有将地址添加到List AddressList;

我无法跟进。

过去任何人都可能面临同样的问题并帮助我解决问题。

先谢谢, Saravnakumar

1 个答案:

答案 0 :(得分:2)

get 
{
    if (Session["currentCustomer"] == null) return new Customer();
     else 
     return (Customer)Session["currentCustomer"];
}

你想解决这个问题。这只会将一个新的Customer对象返回到不确定状态。您想将其分配给会话

get
{
    Customer customer = null;
    if (Session["currentCustomer"] == null)
    {
          customer = new Customer();
          Session["currentCustomer"] = customer;

    }
    else
    {
       customer= (Customer)Session["currentCustomer"];
    }
    return customer;
}

之前正在保存地址,您每次都将其保存到新实例。上面的代码应该修复它 - 希望如此。