データベース内の 2 つの異なるモデルのデータをリスト形式で MVC4 プロジェクトのビューに送信する必要があります。
このようなもの:
コントローラー:
public ActionResult Index()
{
Entities db = new Entities();
ViewData["Cats"] = db.Cats.toList();
ViewData["Dogs"] = db.Dogs.toList();
return View();
}
ビュー:
@* LIST ONE *@
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.ListOneColOne)
</th>
<th>
@Html.DisplayNameFor(model => model.ListOneColTwo)
</th>
<th>
@Html.DisplayNameFor(model => model.ListOneColThree)
</th>
</tr>
@foreach (var item in @ViewData["Cats"]) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.ListOneColOne)
</td>
<td>
@Html.DisplayFor(modelItem => item.ListOneColTwo)
</td>
<td>
@Html.DisplayFor(modelItem => item.ListOneColThree)
</td>
</tr>
@* LIST TWO *@
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.ListTwoColOne)
</th>
<th>
@Html.DisplayNameFor(model => model.ListTwoColTwo)
</th>
<th>
@Html.DisplayNameFor(model => model.ListTwoColThree)
</th>
</tr>
@foreach (var item in @ViewData["Dogs"]) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.ListTwoColOne)
</td>
<td>
@Html.DisplayFor(modelItem => item.ListTwoColTwo)
</td>
<td>
@Html.DisplayFor(modelItem => item.ListTwoColThree)
</td>
</tr>
ビューは、2 つのリスト (モデルごとに 1 つのリスト) を表示することです。
これを行う最も効率的な方法は何ですか?
ビューモデル?
ビューデータ/ビューバッグ?
他の何か?
(第三者の提案はご遠慮ください)
更新:
List<T>
さらに、 Viewmodel を提案する答えを実装するために 1 時間以上試みましたが、運がありませんでした。これは、Viewmodel が次のようになっているためだと思います。
public class GalleryViewModel
{
public Cat cat { get; set; }
public Dog dog { get; set; }
}