首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Foreach循环-显示不同的项目,前3项,项目4-6等。

Foreach循环-显示不同的项目,前3项,项目4-6等。
EN

Stack Overflow用户
提问于 2014-01-13 13:08:36
回答 2查看 1.3K关注 0票数 2

我希望这会是一件容易的事。

我在MVC视图中有一个项目列表,对于前3项,我想在里面显示项目,然后在内部显示项目6-10。

例子如下:

代码语言:javascript
运行
复制
 @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>

}

在我看来,做这件事最好的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-13 13:09:38

使用for循环而不是foreach。

代码语言:javascript
运行
复制
@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>
  }
}
票数 4
EN

Stack Overflow用户

发布于 2014-01-13 13:33:46

我认为更好的答案是重新设计你的model

Article类本身应该包含什么样的标题,例如.

代码语言:javascript
运行
复制
public class Article
{
    public string Title { get; set; }
    public string Type { get; set; }  // for example
}

然后在你的视野内

代码语言:javascript
运行
复制
@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>
     }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21092131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档