错误:值不能为空。参数名称:source

时间:2017-04-30 17:48:13

标签: asp.net-mvc razor

我是编程的新手,虽然我检查了空值,但我仍然继续收到此错误...我无法弄清楚为什么它仍然给我这个错误。 这是我在ProjectDetailsViewModel中的代码:

 public List<string> SelectedServices
        {
            get
            {
                var services =
                    Project.Services?.Select(x => x.ProjServiceCode).ToList();
                var service = Project.ProjectPricings.Where(x=>x.ProjectId == Project.Id && !string.IsNullOrWhiteSpace(x.ServiceCode))
                    .Select(x => x.ServiceCode)
                    .ToList();
                var serviceList = new List<string>();
                if (services != null) serviceList.AddRange(services);
                serviceList.AddRange(service);
                return serviceList ;
            }
        }

在这里我在视图中使用它:

 <tr class="control-oddrow">
        <td class="control-label">
            <label class="dcl-control-label required">Addt'l Services:</label>
        </td>
        <td class="spacer-column"></td>
        <td class="control-input">
            @{ var services = Model.SelectedServices ?? new List<string>() ; }

            @Html.ListBoxFor(m => services, new MultiSelectList(Model.ProjectServices, "ServiceCode", "ServiceCode", services))
        </td>
    </tr>

每次我想得到一个项目的详细信息,该服务为null,它会抛出此错误。我真的很感激一些帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我通过添加以下内容解决了这个问题:    如果(Project.ProjectPricings!= NULL)

这是我工作后的整个功能:

   public List<string> SelectedServices
        {
            get
            {
                var service=new List<string>();
                var services =
                    Project.Services?.Select(x => x.ProjServiceCode).ToList();
                if(Project.ProjectPricings!=null)
                    service = Project.ProjectPricings.Where(x=>x.ProjectId == Project.Id && !string.IsNullOrWhiteSpace(x.ServiceCode))
                        .Select(x => x.ServiceCode)
                        .ToList();
                var serviceList = new List<string>();
                if (services != null) serviceList.AddRange(services);
                serviceList.AddRange(service);
                return serviceList ;
            }
        }
相关问题