Foreach循环 - 以不同方式显示项目,前3项,项目4-6等

时间:2014-01-13 13:08:36

标签: c# asp.net-mvc loops foreach

我希望这将是一个简单的..

我的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>

}

在我的观点中,最好的方法是什么?

2 个答案:

答案 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>
     }
}