2012-02-22 47 views
0

我目前使用的視圖模型中的索引視圖中顯示的家長(藝術家)的列表,包括重定向到指數/ 5,顯示列表中的一個ActionLink的的兒童(專輯),同時仍然顯示完整的父母名單。顯示所有父項的所有子項在一個單一的視圖

現在我想使這個更新上路由到指數,所有的孩子都會被加載的每一位家長,我想象包括使用嵌套@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

查看:

@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); 
} 
+0

這是完美的。非常感謝。 – jimwinz 2012-02-22 03:01:46

相關問題