簡體   English   中英

Foreach循環 - 以不同方式顯示項目,前3項,項目4-6等

[英]Foreach Loop - Display items differently, first 3 item, items 4-6 etc

我希望這將是一個簡單的..

我在MVC視圖中有一個項目列表,對於前3個我想在里面顯示項目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>

}

在我的觀點中,最好的方法是什么?

使用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>
  }
}

我認為更好的答案是重新設計你的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>
     }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM