我希望这会是一件容易的事。
我在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>
}
在我看来,做这件事最好的方法是什么?
发布于 2014-01-13 13:09:38
使用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>
}
}
发布于 2014-01-13 13:33:46
我认为更好的答案是重新设计你的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>
}
}
https://stackoverflow.com/questions/21092131
复制相似问题