【发布时间】:2014-07-23 21:05:54
【问题描述】:
我有一个模型将较小的模型作为列表:
public class MostPlayedList
{
public IList<MostPlayed> mostPlayed = new List<MostPlayed>();
public IList<SongNominator> songNominator = new List<SongNominator>();
public IList<MostUpvoted> songsUpvoted = new List<MostUpvoted>();
public IList<MostUpvoting> userUpvoting = new List<MostUpvoting>();
}
其他模型是包含与视图相关的信息的混合视图模型。现在我使用下面的示例在控件中填写这些列表:
MostPlayedList s = new MostPlayedList();
var mostPlayed = db.Songs.OrderBy(n => n.timesPlayed).ToList().Take(5);
然后对于找到的每个项目,我添加到 IList,在本例中为 MostPlayed IList:
//most played songs
foreach (var item in mostPlayed)
{
s.mostPlayed.Add(new MostPlayed() { name = item.name, timePlayed = item.timesPlayed });
}
我对其他列表项执行此操作,然后将其传递到部分视图中,如下所示:
return PartialView(s);
我遇到的问题是在视图上,我如何向下钻取并公开相关的列表项?我尝试在局部视图中使用它:
@model IEnumerable<JayVumic.Models.MostPlayedList>
然后为每个使用:
@foreach (var item in Model.) {
但这似乎不起作用,公开此模型并循环遍历给定 IList 的数据的最佳方法是什么?
【问题讨论】:
-
也许您应该使用
@model JayVumic.Models.MostPlayedList并使用@foreach (var item in Model.mostPlayed)对其进行迭代,因为您将单个 MostPlayedList 对象传递给查看,而不是枚举 -
德米特里是对的......如果是这样的话,QED
标签: c# asp.net-mvc entity-framework asp.net-mvc-5