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

How to retrieve list of data in model

我在模型中有数据,我曾经将该数据存储在会话中,如下所示在控制器中

 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) 上;它抛出空异常。 ServiceDetails 是一个 class,它包含项目列表

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; }
}
}

我是不是遗漏了一些代码? 因为我是新手,所以我不知道自己做错了什么

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

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