C# 使用foreach-MVC类似Listview
我有20个项目的清单。。。在每5次之后,我想为列添加一个div,每个项都有自己的div和。。下面是我试图使用foreach/for生成的内容,但我在决定如何设置for/foreach循环以生成以下HTML时遇到了问题C# 使用foreach-MVC类似Listview,c#,asp.net-mvc,C#,Asp.net Mvc,我有20个项目的清单。。。在每5次之后,我想为列添加一个div,每个项都有自己的div和。。下面是我试图使用foreach/for生成的内容,但我在决定如何设置for/foreach循环以生成以下HTML时遇到了问题 <div class="oc_column"> <div class="oc_row"> <div class="oc_left"><img src="/images/oc1.png"
<div class="oc_column">
<div class="oc_row">
<div class="oc_left"><img src="/images/oc1.png" width="26" height="23" alt="" title=""></div>
<div class="oc_right">Items 1</div>
</div>
<div class="oc_row">
<div class="oc_left"><img src="/images/oc2.png" width="26" height="23" alt="" title=""></div>
<div class="oc_right">Items 2</div>
</div>
<div class="oc_row">
<div class="oc_left"><img src="/images/oc3.png" width="26" height="23" alt="" title=""></div>
<div class="oc_right">Items 3</div>
</div>
<div class="oc_row">
<div class="oc_left"><img src="/images/oc4.png" width="26" height="23" alt="" title=""></div>
<div class="oc_right">Items 4</div>
</div>
<div class="oc_row">
<div class="oc_left"><img src="/images/oc5.png" width="26" height="23" alt="" title=""></div>
<div class="oc_right">Item 5</div>
</div>
</div>
<div class="oc_column">
<div class="oc_row">
<div class="oc_left"><img src="/images/oc6.png" width="26" height="23" alt="" title=""></div>
<div class="oc_right">Item 6</div>
</div>
<div class="oc_row">
<div class="oc_left"><img src="/images/oc7.png" width="26" height="23" alt="" title=""></div>
<div class="oc_right">Item 7</div>
</div>
<div class="oc_row">
<div class="oc_left"><img src="/images/oc8.png" width="26" height="23" alt="" title=""></div>
<div class="oc_right">Item 8</div>
</div>
<div class="oc_row">
<div class="oc_left"><img src="/images/oc9.png" width="26" height="23" alt="" title=""></div>
<div class="oc_right">Item 9</div>
</div>
<div class="oc_row">
<div class="oc_left"><img src="/images/oc10.png" width="26" height="23" alt="" title=""></div>
<div class="oc_right">Item 10</div>
</div>
</div>
项目1
项目2
项目3
项目4
项目5
项目6
项目7
项目8
项目9
项目10
更新:
这是我一直在寻找的答案,谢谢你的帮助
@{
int pageSize = 5;
var totalPages = Model.Types.Count / pageSize;
if (Model.Types.Count % pageSize != 0)
{
totalPages++;
}
for (int i = 0; i < totalPages; i++)
{
var types = Model.Types.Skip(i * pageSize).Take(pageSize);
<div class="oc_column">
@foreach (var type in types)
{
<div class="oc_left"><img src="/images/oc1.png" width="26" height="23" alt="" title=""></div>
<div class="oc_right">@type.Description</div>
}
</div>
}
}
@{
int pageSize=5;
var totalPages=Model.Types.Count/pageSize;
if(Model.Types.Count%pageSize!=0)
{
totalPages++;
}
对于(int i=0;i
使用一个计数器变量,检查它的值,并获得所需的div
@{ int counter=0; }
@foreach(var item in Model.Projects)
{
if(counter==0)
{
@:<div class='column'>
}
counter++;
<div class="oc_row">@item.Name</div>
if (counter ==5)
{
@:</div>
counter = 0;
}
}
@{int counter=0;}
@foreach(Model.Projects中的var项)
{
如果(计数器==0)
{
@:
}
计数器++;
@项目名称
如果(计数器==5)
{
@:
计数器=0;
}
}
假设您有一个字符串列表
List<string> list = new List<string>();
@for(int i=0; i < list.Count; i++)
{
<div class="oc_column">
for(; i < list.Count && i%5 != 0; i++)
{
<div class="oc_row">
<div class="oc_left"><img src="/images/oc1.png" width="26" height="23" alt="" title=""></div>
<div class="oc_right">Items 1</div>
</div>
}
</div>
}
List List=新列表();
@for(int i=0;i
for
循环当然可以正常工作,但是如果您需要在foreach
中使用计数器,只需执行以下操作:
@foreach (var item in list.Select((value, i) => new { i, value }))
{
if (item.i == 0)
{
// do something with first item.value
}
else
{
// do something else with item.value
}
}
问题是什么?我如何分解它,使每5个项目后,列有一个div…从列表中一次获取5个,然后执行以下操作:list=div.Skip(0)。Take(5);假设列div包装其他div,因此每5个列div中就有一个列div,您所做的并不能产生期望的结果,只是添加了一个对我没有任何好处的div,现在也可以工作了。谢谢,我选择使用take/skipsavme作为shyju的答案来完成,我需要列div包装其他4个