我希望这将是一个简单的..
我的MVC视图中有一个项目列表,前三个我想在里面显示项目6-10里面的项目。
以下示例:
@foreach (var Article in @Model.ContentList)
{
// for Items 1 - 3
<h1>@Article.Title</h1>
// for Items 4 - 7
<h2>@Article.Title</h2>
// for Items 7 +
<h3>@Article.Title</h3>
}
在我的观点中,最好的方法是什么?
答案 0 :(得分:4)
使用for循环代替foreach。
@for ( int i = 0; i < Model.ContentList.Count; i++ )
{
var Article = Model.ContentList[i];
if ( i < 3 ){
// for Items 1 - 3
<h1>@Article.Title</h1>
} else if ( i < 7 ){
// for Items 4 - 7
<h2>@Article.Title</h2>
} else {
// for Items 7 +
<h3>@Article.Title</h3>
}
}
答案 1 :(得分:3)
我认为更好的答案是重新设计model
。
Article
类本身应包含它具有哪种标头,例如......
public class Article
{
public string Title { get; set; }
public string Type { get; set; } // for example
}
然后在你的视图中
@foreach (var Article in @Model.ContentList)
{
if(Article.Type == "Big")
{
<h1>@Article.Title</h1>
}
else if(Article.Type == "Medium")
{
<h2>@Article.Title</h2>
}
else if(Article.Type == "Small")
{
<h3>@Article.Title</h3>
}
}