繁体   English   中英

ASP.NET Razor实体框架Null参考异常

[英]ASP.NET Razor Entity Framework Null reference exception

这是导致问题的代码,它在视图内部:

@{
    if(item.Contract_Type != null)
    {
        dangerhtml = (item.Contract_Type == "Premium") ? "class=\"warning\"" : "";
    }
}
<td @dangerhtml>
    @Html.DisplayFor(modelItem => item.Contract_Type)
</td>

这段代码位于foreach内部:

@foreach (var item in Model) {
..etc
}

它在if行上抛出NullReferenceException。 如果我删除以上所有内容并执行以下操作,则代码可以正常工作:

<td>
        @Html.DisplayFor(modelItem => item.Contract_Type)
</td>

但是我正在基于项目的内容设置单元格的类。

任何帮助表示赞赏!

我很确定该项目为null,就像Luke已经提到的那样,并且@ Html.DisplayFor会吞下这个。

为什么不添加以下where子句以防止空项目被处理:

@foreach (var item in Model.Where(i => i != null))
{
  ..etc
}

或者,您可以在检查Contract_Type之前对项目进行空检查,以防止NullReferenceException发生:

if(item != null && item.Contract_Type != null)
{
  dangerhtml = (item.Contract_Type == "Premium") ? "class=\"warning\"" : "";
}

但是,也许最好的方法是确保在将null对象传递给视图之前,不将任何空对象写入Model-collection。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM