![](/img/trans.png)
[英]ASP.Net Razor Entity Framework Null Reference Exception when use Ajax
[英]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.