C# 使用foreach-MVC类似Listview

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"

我有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" 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个