2

回答済み

Dbaseman は正しかったのですが、すべてを単純化するために、モーダルは必要ありません。コードは次のようになります。

[ChildActionOnly]
public ActionResult RecentNews()
{
    return PartialView(db.Articles.ToList());
}

@{Html.RenderAction("RecentNews");}

以下は、機能していなかった私の古いコードです

次の作業を行うのに問題があります。正しい軌道に乗っているかどうかさえわかりません。ビューを作成するとコードはすべて正常に機能しますが、部分ビューを作成して他のビューに追加すると機能しません。何を試しても、エラーが発生するようです:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

私の見解では:

@Html.Partial("RecentNews")

私のアクションは次のようになります。

public ActionResult RecentNews()
{
    var rn = (from m in db.Articles
                select new RecentNews
                {
                    ArticleHeading = m.ArticleHeading
                });
    return View(rn);

    //return View(db.Articles.ToList());
}

私のモーダル:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace melbournesportsstadium.Models
{
    public class RecentNews
    {
        public string ArticleHeading { get; set; }
    }
}

そして私のRecentNews.cshtml:

@model List<melbournesportsstadium.Models.RecentNews>

<table>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.ArticleHeading)
        </td>
    </tr>
}

</table>

誰かがこれを機能させるのを手伝ってくれますか?

4

1 に答える 1

2

部分ビューがモデルを受け取っていないため、「null 参照」を取得しています。@Html.Partial はコントローラーに戻らず、ビューを直接レンダリングします。@Html.Action("RecentNews") に変更すると、動作するはずです。

于 2012-05-16T04:42:03.503 に答える