1

我有一个与模型相关的视图:

@model IEnumerable<AJA.Models.DB.Article>

我想做的就是遍历模型来做一些逻辑:

@foreach (var item in Model)
{
    var article = item.article1;
    if (article.Length > 500)
    {
        article = article.Substring(0, 500) + "...";
    }

但是,当我执行视图时,错误:

exception: System.NullReferenceException: The reference of the object is not defined 
to an instance of the object.

如果我@Html.DisplayFor(modelItem => item.article1)一个人做,我可以得到文章,但我想事先做业务逻辑。

它出什么问题了 ?

4

1 回答 1

3

首先在您的视图中,三重检查以确保您正确使用您的视图模型。

像这样的东西应该在你的视图的顶部:

@model IEnumerable<AJA.Models.DB.Article>

在您的控制器中设置断点并使用 F10 一直向下钻取到您的视图,您将能够检查视图的 foreach 循环中的对象。

沿着这条线的某个地方,一个对象是空的,你希望它有一些东西。弄清楚那个对象是什么。

@foreach (var item in Model)
{
    var article = item.article1; //article1 may be null. Check it!
    if (article.Length > 500)
    {
        article = article.Substring(0, 500) + "...";
    }
}
于 2012-05-18T15:08:32.003 回答