私は2つのモデルクラスを持っています:アーティストとアルバム、アーティストに属するインデックスビューに表示したいアーティストあたりの総アルバム数、アーティストによって作らアルバムの合計額とAlbumsTotal 『『という名前の』"と』姓は、インデックスビュー内で、ここで私が何をしたいの例です:インデックスビューでいくつかの結果を表示する方法
Name LastName TotalAlbums
Frank Sinatra 4
Celine Dion 6
は私が行う方法を知っているのViewModelを作成することと、他のビューを使用していますが、私はArtistに属している同じビューを使用して情報を表示したいと考えています。どうすればいいのか教えていただけますか?
モデルクラス:
public class Artist
{
public int ArtistID { get; set; }
[Display(Name ="Artist name")]
public string Name { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public virtual List<Album> Albums { get; set; }
}
public class Album
{
public int AlbumID { get; set; }
public string AlbumName { get; set; }
public virtual Artist Artist { get; set; }
public int ArtistID { get; set; }
}
インデックスビュー:
@model IEnumerable<AlexMusicStore.Models.Artist>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.LastName)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.LastName)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ArtistID }) |
@Html.ActionLink("Details", "Details", new { id=item.ArtistID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.ArtistID }) |
</td>
</tr>
}
</table>
は、これらの3つのプロパティを持つビューモデルを作成し、 'Albums.Count'(またはあなたに基づいて' TotalAlbums'プロパティを設定するには、単に 'を使用することができます@ item.Albums.Count 'のビュー –
@StephenMueckeスティーブン、ありがとう、私はこれを具体的に他のビューを作成する必要があると思うので、私はちょうど同じアーティストビューにそれを追加する別の方法があったと思っていたすべてのソリューションを調べるために、ViewModelを使用して新しいビューを作成するのが最も良い方法だと思います。 – AlexGH
「@ item.Albums.Count」を使用できますが、linqクエリは実際にはビューとモデルのビューはより良いアプローチです –