基本モデルを使用して作成した ViewModel があります。テーブルにデータを挿入することもできます。
データを取得してフォームに表示したいと思います。Index Viewにどのコードを記述すればよいですか。
私の ViewModel は、2 つの異なる基本モデルのプロパティで構成されています。したがって、ビューで、ViewModelのプロパティを使用して情報を取得しようとすると、「オブジェクトがオブジェクトのインスタンスに設定されていません」というエラーが表示されます。
コードは次のとおりです。
ViewModel クラス:
public class VideoContextViewModel
{
public string VideoName { get; set; }
public string DescriptionVideo { get; set; }
public string actor { get; set; }
public HttpPostedFileBase references { get; set; }
}
基本モデル クラス:
public class video
{
public int ID { get; set; }
public string VideoName { get; set; }
public string DescriptionVideo { get; set; }
public string FilmName { get; set; }
public int ratings { get; set; }
}
public class videoDetails
{
public int VideoDetailsID { get; set; }
public string actor { get; set; }
public byte[] reference { get; set; }
public int ID { get; set; }
public virtual video Video { get; set; }
}
インデックス ビュー :
@model IEnumerable< ConnectDatabase. VideoContextViewModel>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.VideoName)
</td>
<td>
@Html.DisplayFor(modelItem => item.DescriptionVideo)
</td>
<td>
@Html.DisplayFor(modelItem => item.actor)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ })
@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ })
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
</td>
</tr>
}
ソリューションを実行すると、次のエラーが表示されます。
オブジェクトをオブジェクトのインスタンスに設定することはできません。foreach ループの「モデル」にカーソルを合わせると、Null と表示されます。
したがって、両方のテーブルのデータを表示するには、ここに何を記述すればよいでしょうか?