如何检索模型中的数据列表

时间:2016-12-27 10:36:25

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-3 model-view-controller

我在模型中有数据,我曾经在会话中将这些数据存储在控制器

 if (providerListingModel.ServiceDetails != null && providerListingModel.ServiceDetails.Count > 0)
            Session["ServiceDetails"] = providerListingModel.ServiceDetails;
 else
            Session["ServiceDetails"] = null;

并且对于检索我使用了逻辑

       if (Session["ServiceDetails"] != null)
        {
            if (providerListingModel.ServiceDetails == null)
            {
                List<ServiceDetail> sam = (List<ServiceDetail>)Session["ServiceDetails"];

                foreach (var items in sam)
                {
                    var sd = new ServiceDetail();
                    sd.Id = items.Id;
                    sd.CategoryServiceId = items.CategoryServiceId;
                    sd.ServiceType = items.ServiceType;
                    sd.ServicePrice = items.ServicePrice;
                    sd.IsSelected = items.IsSelected;
                    sd.ProviderListingId = providerListingModel.ProviderListingId;
                    providerListingModel.ServiceDetails.Add(sd);
                }
            }
            Session["ServiceDetails"] = null;
        }

会话包含数据但在providerListingModel.ServiceDetails.Add(sd);它抛出null异常。 ServiceDetails是一个类,它包含项列表

namespace xyz.DAL
{
 using System;
 using System.Collections.Generic;

public partial class ServiceDetail
{
    public int Id { get; set; }
    public int ProviderListingId { get; set; }
    public Nullable<int> CategoryServiceId { get; set; }
    public string ServiceType { get; set; }
    public Nullable<int> ServicePrice { get; set; }
    public string CustomeService { get; set; }
    public Nullable<bool> IsSelected { get; set; }

    public virtual CategoryService CategoryService { get; set; }
    public virtual ProviderListing ProviderListing { get; set; }
}
}
我错过了一些代码吗? 因为我是新人,我不知道我做错了什么

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

您正在将项目插入空值,因此会引发错误。创建列表的新实例并将项添加到集合中。

if(providerListingModel.ServiceDetails ==null)
  providerListingModel.ServiceDetails = new List<ServiceDetail>();