我有一个与模特相关的观点:
@model IEnumerable<AJA.Models.DB.Article>
我想做的就是遍历模型来做一些逻辑:
@foreach (var item in Model)
{
var article = item.article1;
if (article.Length > 500)
{
article = article.Substring(0, 500) + "...";
}
但是,当我执行View时,错误:
exception: System.NullReferenceException: The reference of the object is not defined
to an instance of the object.
如果我单独@Html.DisplayFor(modelItem => item.article1)
,我就会把文章写好,但我想事先做好业务逻辑。
它出了什么问题?
答案 0 :(得分:3)
首先在您的视图中,三重检查以确保您正确使用ViewModel。
这样的事情应该在你的观点的顶部:
@model IEnumerable<AJA.Models.DB.Article>
在控制器中设置断点并使用F10向下钻取到View,您将能够在View的foreach循环中检查对象。
沿着这条线的某个地方,一个对象为null,你希望它有一些东西。找出那个对象是什么。
@foreach (var item in Model)
{
var article = item.article1; //article1 may be null. Check it!
if (article.Length > 500)
{
article = article.Substring(0, 500) + "...";
}
}