我目前正在使用视图模型在索引视图中显示父母(艺术家)列表,其中包括一个重定向到Index / 5以显示子项列表(Albums)的ActionLink,同时仍显示完整列表父母。
我现在正在尝试更新这个,以便在路由到Index时,将为每个父级加载所有子级,我想这包括使用嵌套的@foreach。
它似乎应该很简单,我试图让这个例子尽可能简单(避免部分视图等),但我无法在任何地方找到比较教程或回答问题 - (这可能好吧,我正在寻找错误的条款!)。
对于我是否以正确的方式进行此任何帮助都将非常感激。
控制器
// GET: /ArtistsTest/
public ActionResult Index(Int32? id)
{
var viewModel = new TestViewModel();
viewModel.Artists = db.Artists
.Include(a => a.Albums);
if (id != null)
{
ViewBag.ArtistID = id.Value;
viewModel.Albums = viewModel.Artists.Where(a => a.ArtistID == id.Value).Single().Albums;
}
return View(viewModel);
}
观点:
@foreach (var artist in Model.Artists)
{
<p>
@Html.DisplayFor(modelItem => artist.ArtistID)
@Html.DisplayFor(modelItem => artist.ArtistName)
@Html.ActionLink("Select", "Index", new { id = artist.ArtistID })
</p>
}
<br />
@if (Model.Albums != null)
{
<p>
Albums:
@foreach (var album in Model.Albums)
{
<p>
@Html.DisplayFor(albumItem => album.AlbumName)
</p>
}
</p>
}
答案 0 :(得分:0)
查看:
@foreach (var artist in Model.Artists)
{
<p>
@Html.DisplayFor(modelItem => artist.ArtistID)
@Html.DisplayFor(modelItem => artist.ArtistName)
@Html.ActionLink("Select", "Index", new { id = artist.ArtistID })
@foreach(var album in artist.Albums){
<p>
@Html.DisplayFor(albumItem => album.AlbumName)
</p>
}
</p>
}
控制器:
public ActionResult Index()
{
var viewModel = new TestViewModel();
viewModel.Artists = db.Artists.Include(a => a.Albums);
return View(viewModel);
}