C# 如何在MVC中为从数据库中提取的数据创建8项后的新列

C# 如何在MVC中为从数据库中提取的数据创建8项后的新列,c#,asp.net-mvc,C#,Asp.net Mvc,目前,这是我从数据库中提取项目列表的代码,显示在菜单项下: <div class="top"> <ul> <li class='itemCaption f17o'>&nbsp;</li> @foreach (var category in Model.CatList) { <li> <a href="/c/@category.Id/@category.Name" class='white'>@category.Nam

目前,这是我从数据库中提取项目列表的代码,显示在菜单项下:

<div class="top">
<ul>
<li class='itemCaption f17o'>&nbsp;</li>
@foreach (var category in Model.CatList)
{
<li>
<a href="/c/@category.Id/@category.Name" class='white'>@category.Name</a>
</li>
}


</ul>

</div>

  • @foreach(Model.CatList中的var类别) {
  • }
但这仅显示一列下的所有项目。当我到达一列中的第八项时,如何将列表拆分为另一列?

@foreach(Model.CatList.Select中的var category((Value,i=>new{i,Value}))
@foreach (var category in Model.CatList.Select((Value, i => new { i, Value }))
{
    if (category.i % 8 == 0)
    {
        @("</ul></li><li><ul>")
    }
    <li>
        <a href="/c/@category.Value.Id/@category.Value.Name" class='white'>@category.Value.Name</a>
    </li>
}
{ 如果(类别i%8==0) { @(“
    • ”) }
    • }
  • 目前,每个数据仅在一列中一个接一个地出现。我希望在每第8个元素后将其拆分为不同的列…如何做到这一点???此处显示错误“Lambda参数用法不一致。参数类型必须全部隐式或全部显式”以及错误2:“名称类别在当前上下文中不存在”。为什么是这样?它以前不是这样说的..那么为什么是现在?这里的'Value'代表什么?这里的forloop正确吗?@foreach(Model.CatList.Select中的var category((Value,int i=>new{i,Value}))你能帮个忙吗@Chris Pratt
    表示在普通foreach中最初作为
    类别
    返回的内容。我们返回的是一个匿名对象,由循环的迭代索引和项目组成,而不是返回项目本身。