C# 在我的asp mvc站点中找不到艺术家
你好,我正在尝试制作一个音乐应用程序来共享音乐,但我有以下问题 我把红色圆圈放在那里,我想把我在班上做的艺术家放进去。我试着用字典,但无法使用分机页面列表 上述网页的视图如下所示:C# 在我的asp mvc站点中找不到艺术家,c#,asp.net-mvc,C#,Asp.net Mvc,你好,我正在尝试制作一个音乐应用程序来共享音乐,但我有以下问题 我把红色圆圈放在那里,我想把我在班上做的艺术家放进去。我试着用字典,但无法使用分机页面列表 上述网页的视图如下所示: <div class="panel panel-default"> <table class="table"> @foreach (var item in (IEnumerable<Song>) ViewData["songs"]) { <t
<div class="panel panel-default">
<table class="table">
@foreach (var item in (IEnumerable<Song>) ViewData["songs"])
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Genre)
</td>
<td>
<a class="artist">Artiest</a>
</td>
<td>
<a class="playbtn btn btn-sm btn-default btn-circle pull-right" data-item="@item.Mp3File"><span class="glyphicon glyphicon-play"></span></a>
</td>
<td>
<button class="btn btn-default glyphicon glyphicon-plus favoritebutton pull-right">Add to favorites</button>
</td>
</tr>
}
</table>
public ActionResult Index(int page = 1, int pagesize = 8)
{
List<Artist> artists = artistRepository.GetArtistBySongID(int id);
List<Song> songs = songRepository.ReadSongs();
List<Song> recommended = songRepository.GetFavoritesById(Convert.ToInt32(Session["userid"]));
ViewData["recommended"] = recommended;
PagedList<Song> pagedList = new PagedList<Song>(songs, page, pagesize);
ViewData["songs"] = pagedList;
return View();
}
列表艺术家=ArtistRespository.GetArtistBySongidit id
这是你的第一个问题。您需要一个艺术家列表,每个艺术家对应一首歌,但您只给它一首歌的id。这将返回一个艺术家,而不是列表。所以,你需要浏览你的歌曲列表,拿出id,找到那首歌的艺术家,然后建立一个列表
List<Artist> artists = new List<Artist>();
List<Song> songs = songRepository.ReadSongs();
PagedList<Song> pagedList = new PagedList<Song>(songs, page, pagesize);
foreach(var song in pagedList)
artists.Add(artistRepository.GetArtistBySongID(song.ID));
ViewData["songs"] = pagedList;
ViewData["artists"] = artists;
然后在你看来,改变
@foreach (var item in (IEnumerable<Song>) ViewData["songs"])
{
致:
.GetArtistBySongidit id;-这不会编译??身份证是从哪里来的?这就是我需要知道的。如何从html页面获取id?歌曲看起来像什么?你能编辑你的问题来显示Song类的代码吗看起来你有建模问题-为什么你需要一个单独的GetArtistBySongID-我觉得SongID上应该有一个Artister属性我需要为此创建一个modelview吗?我可以用什么方式使用它,你能给我举个例子吗?
List<Song> songs = songRepository.ReadSongs();
PagedList<Song> pagedList = new PagedList<Song>(songs, page, pagesize);
var songartists = new List<Tuple<Song, Artist>>
foreach(var song in pagedList)
songartists .Add(Tuple.Creeate(song, artistRepository.GetArtistBySongID(song.ID)));
ViewData["songs"] = songartists ;
@foreach (var item in (IEnumerable<Song>) ViewData["songs"])
{
@foreach (var song in (IEnumerable<Tuple<Song, Artist>) ViewData["songs"])
{
var item = song.Item1;
var artist = song.Item2;