【问题标题】:How to retrieve list of data in model如何检索模型中的数据列表
【发布时间】:2017-05-11 15:24:08
【问题描述】:

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

 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 是一个类,它包含项目列表

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

我错过了一些代码吗? 因为我是新手,所以我不知道我做错了什么

【问题讨论】:

  • 似乎 providerListingModel.ServiceDetails 的值为空...列表项不应为空,它应该是要插入的空集合。所以创建新实例并添加项目
  • 你能给我1个示例代码吗
  • if(providerListingModel.ServiceDetails ==null) providerListingModel.ServiceDetails = new List();

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


【解决方案1】:

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

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

【讨论】:

  • 只是试一试,一会儿告诉你
  • 是否可以将我的代码作为 foreach (var items in sam) { providerListingModel.ServiceDetails.Add(Items); }
猜你喜欢
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
  • 2017-12-20
  • 2016-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-17
相关资源
最近更新 更多