您可以为此创建一个视图模式, 用于存储艺人列表和专辑列表
public class ArtistWithHighlights
{
public Artist Artist { set;get;}
public IEnumerable<Albums> Albums{ set;get;}
}
在控制器中,请为 GET 视图写一个动作方法。 在这个方法中, 获取所有的艺人并获取专辑属于第一个艺人 。 (您可以按照您的要求更改此选项)
public ActionResult ArtistsWithHighLights()
{
List<ArtistWithHighlights> allArtists=new List<ArtistWithHighlights>();
allArtists=GetAllArtists();
//If we have atlease one artist in the list, Load the albums for the first one only
if(allArtists.Count>0)
{
allArtists[0].Albums=GetAlbumsForArtist(allArtists[0].Artist.ArtistID);
}
return View(allArtists);
}
您的强烈键入视图是这样的
@model List<ArtistWithHighlights>
@foreach(var artist in Model)
{
<a id="@artist.ID" class="artistName">@artist.Name</p>
}
<div id="albums">
<h3>Highlighted Albums</h3>
@foreach(var album in Model[0].Albums)
{
<p>@album.Name</p>
}
</div>
要在选中时( 点击事件) 获取另一个艺人的相册, 您可以使用另一种 < code> Action code> 方法调用 ajax 调用, 返回已通过艺人id 的相册列表, 然后在 div 中显示 。
$(function(){
$(".artistName").click(function(e){
e.preventDefault();
var artistId=$(this.attr("id");
$("#albums").load("../Albums/"+artistId);
});
});