ここで与えられた受け入れられた回答についてフォローアップの質問があります: Two models in one view in ASP MVC 3
タイプ、原因、場所の 3 つのモデルがあり、それらの内容を 1 つのビューに一覧表示します。上記のリンクの回答に基づいて、次のような を組み合わせた新しいモデルを作成しました。
public class Combined
{
public IEnumerable<Place> Place { get; set; }
public IEnumerable<Type> Type { get; set; }
public IEnumerable<Cause> Cause { get; set; }
}
IEnumerable<> にしたのは、私が理解しているように、これらのモデルの内容を foreach ループでリストしたいだけの場合に必要だからです。次に、ビュー用にこのコントローラーを作成しました。
[ChildActionOnly]
public ActionResult overSightHeadings()
{
Combined Combined = new Combined();
return View(Combined);
}
そして最後にビュー(最初にテーブルの1つからリストしようとしていました):
@model mvcAvvikelser.Models.Combined
@{
Layout = null;
}
<tr>
@foreach (var Type in Model.Type)
{
<th> @Html.DisplayTextFor(ModelItem => Type.Name)</th>
}
</tr>
このコードの問題は、foreach コードの開始時に null 例外が発生することです。
System.NullReferenceException: Object reference not set to an instance of an object.
したがって、ここで何が間違っているのか完全にはわかりません.IEnumerableではないはずです.コントローラーでモデルを誤って初期化したのでしょうか?