ASP.NET Razor实体框架Null引用异常
本文关键字:Null 引用 异常 框架 实体 NET Razor ASP | 更新日期: 2023-09-27 18:26:23
这是导致问题的代码,它在视图中:
@{
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>
但我希望根据项目的内容为单元格设置类。合同类型
感谢您的帮助!
正如Luke已经提到的,我很确定该项为null,@Html.DisplayFor会接受这一点。
为什么不添加以下where子句来防止处理空项目呢:
@foreach (var item in Model.Where(i => i != null))
{
..etc
}
或者,您可以在检查Contract_Type之前对项目进行null检查,以防止出现NullReferenceException:
if(item != null && item.Contract_Type != null)
{
dangerhtml = (item.Contract_Type == "Premium") ? "class='"warning'"" : "";
}
但是,最好的方法可能是确保在将null对象传递给视图之前,不会将其写入Model集合。。