asp.net mvc 3视图使用foreach循环模型

时间:2012-05-18 15:04:42

标签: asp.net-mvc-3 foreach

我有一个与模特相关的观点:

@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),我就会把文章写好,但我想事先做好业务逻辑。

它出了什么问题?

1 个答案:

答案 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) + "...";
    }
}