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)記事はOKだけど、ビジネスロジックは事前にやっておきたい。

どうしたの ?

4

1 に答える 1

3

まず、View で、ViewModel を正しく使用していることを確認するために3 回チェックします。

このようなものがビューの上部にあるはずです:

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

コントローラーにブレークポイントを設定し、F10 を使用してビューまでドリルダウンすると、ビューの 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) + "...";
    }
}
于 2012-05-18T15:08:32.003 に答える