C# 在ASP.NETMVC中的X个项目之后水平重复项目
我有一个菜单的局部视图,它呈现这样的菜单C# 在ASP.NETMVC中的X个项目之后水平重复项目,c#,asp.net,.net,asp.net-mvc,linq,C#,Asp.net,.net,Asp.net Mvc,Linq,我有一个菜单的局部视图,它呈现这样的菜单 @helper RenderNav(CategoryViewModel item) { if (item.ChildCategories.Any()) { <div class="link-block"> <ul> @foreach (var sub in item.ChildCategories) {
@helper RenderNav(CategoryViewModel item)
{
if (item.ChildCategories.Any())
{
<div class="link-block">
<ul>
@foreach (var sub in item.ChildCategories)
{
<li><a href="#"><i class="icon-angle-right"></i> @sub.Name</a></li>
@RenderNav(sub);
}
</ul>
</div>
}
}
@foreach (var item in Model)
{
<li>
<a href="#" class="label">@item.Name<i class="icon-chevron-down"></i></a>
<ul class="one" id="links">
<li>
@RenderNav(item)
</li>
</ul>
</li>
}
@helper RenderNav(类别视图模型项)
{
if(item.ChildCategories.Any())
{
@foreach(ChildCategories中的var子项)
{
@伦德纳夫(小组);
}
}
}
@foreach(模型中的var项目)
{
-
@RenderNav(项目)
}
然而,生成的HTML总是在一行中重复,但是我希望在修复后将项目移动到下一列,例如3个项目,这样重新筛选的项目应该像这样显示;
然而,目前的情况是
<div class="link-block">
<ul>
<li><a href="#"><i class="icon-angle-right"></i> Menu 1</a></li>
<li><a href="#"><i class="icon-angle-right"></i> Menu 2</a></li>
<li><a href="#"><i class="icon-angle-right"></i> Menu 3</a></li>
<li><a href="#"><i class="icon-angle-right"></i> Menu 4</a></li>
<li><a href="#"><i class="icon-angle-right"></i> Menu 5</a></li>
<li><a href="#"><i class="icon-angle-right"></i> Menu 6</a></li>
<li><a href="#"><i class="icon-angle-right"></i> Menu 7</a></li>
<li><a href="#"><i class="icon-angle-right"></i> Menu 8</a></li>
<li><a href="#"><i class="icon-angle-right"></i> Menu 9</a></li>
</ul>
</div>
这里有一个IEnumerable
扩展方法,它采用源代码,比如[a,B,C,D,E,F,G,H]
和groupSize
为3,并返回[[a,B,C],[D,E,F],[G,H]
static IEnumerable<IEnumerable<T>> GroupSequential(
this IEnumerable<T> source, int groupSize)
{
return source
.Select((x, i) => new { x, i })
.GroupBy(t => t.i / groupSize)
.Select(g => g.Select(t => t.x));
}
静态IEnumerable GroupSequential(
此IEnumerable源,int groupSize)
{
返回源
.Select((x,i)=>new{x,i})
.GroupBy(t=>t.i/groupSize)
.Select(g=>g.Select(t=>t.x));
}
现在,不要这样做:
<ul>
@foreach (var item in Model)
{
<li>...render item...</li>
}
</ul>
@foreach(模型中的var项目)
{
- …呈现项目
}
这样做:
<table>
@foreach (var row in Model.GroupSequential(3))
{
<tr>
@foreach (var item in row)
{
<td>...render item...</td>
}
</tr>
}
</table>
@foreach(Model.GroupSequential(3)中的var行)
{
@foreach(行中的var项目)
{
…呈现项目。。。
}
}
<table>
@foreach (var row in Model.GroupSequential(3))
{
<tr>
@foreach (var item in row)
{
<td>...render item...</td>
}
</tr>
}
</table>