我有一個應用程序的大學橄欖球fightsongs。我想顯示單個球隊的詳細信息,例如學校名稱,吉祥物,會議等等,但也可以在同一頁面上看到局部視圖,其中部分視圖通過球隊的戰鬥歌曲循環播放。我能夠通過使用IEnumerable來獲得這些數據,但我不認爲這是最佳實踐。查看部分視圖,也有IEnumerable
我希望我的代碼儘可能精簡,在我看來有30個Viewbags可能不是最好的方法。
我的代碼炸燬在@Html.Partial("_FightSongDetails")
以下是錯誤:
Additional information: The model item passed into the dictionary is of type 'SportSongs.Models.ViewModels.ConferenceTeamViewModel', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[SportSongs.Models.ViewModels.ConferenceTeamViewModel]'.
我相信這是說,我的主視圖需要有ConferenceTeamViewModel的IEnumerable但後來我怎麼拉數據不把整個頁面放在一個foreach循環中?
ConferenceTeamViewModel只是我的團隊,會議和fungong數據的viewmodel。
我現在的詳細操作是:
public ActionResult Details(int id = 0)
{
var team = _db.Teams.Find(id);
var conference = _db.Conferences.FirstOrDefault(x => x.ConferenceId == team.ConferenceId);
if (team == null)
{
return HttpNotFound();
}
return View(new ConferenceTeamViewModel()
{
Teams = team,
Conference = conference
});
}
我的詳細信息視圖(我能夠在單一的模式數據來拉,只是沒有fightsongs):
@model SportSongs.Models.ViewModels.ConferenceTeamViewModel
<div class="row">
<div class="col-sm-12">
@Model.Teams.School
</div>
</div>
<div class="row">
<div class="col-sm-12">
@Html.Partial("_FightSongDetails")
</div>
</div>
這裏是我的PartialView:
@model IEnumerable<SportSongs.Models.ViewModels.ConferenceTeamViewModel>
<tbody id="fightsongPlaylist">
@foreach (var song in Model)
{
<tr>
<td>@song.Fightsong.songname</td>
<td><a href="@Url.Content(@song.Fightsong.songurl)" class="playbtn" onclick="myFunction()"><i data-songid="@Url.Content(@song.Fightsong.FightSongId.ToString())" class="fa fa-play"></i></a></td>
</tr>
}
我很困惑 - 沒有一個隊有多個戰鬥歌曲?或者你想顯示一個團隊的細節,但是_other_團隊的戰鬥歌曲? –
如果你的變量是正確命名的,例如:你有一個「團隊」屬性,似乎只能容納一個團隊。 –
@DStanley是的,每個團隊可以有多首歌曲,但詳細信息頁面只會顯示一個團隊。所以這個觀點將會有一個團隊的名字,吉祥物,會議,但是會有X數量的戰鬥。謝謝 – coggicc