如何编写递归函数(MVC.net中父子组合的动态foreach循环)

时间:2016-09-06 13:12:55

标签: c# asp.net-mvc-4

我有一个父ID和子ID ...这个子ID也是某个子ID的父级。父母有多个孩子......这些多子女有一些孩子的父母.. 例子:假设A是B,C,D和E的父...如果B有一些子名G,H,我和G有一些孩子有J,K ..现在如何在这种情况下使用foreach循环??? 现在如何使用foreach循环??? 这是代码,但它只适用于单亲父子关系(假设A有B,C,D子):

 @model Abacus_CMS.Models.AbacusModel  
@{  
Layout = null;  
//for parent  
var ParentCatagoryList = Model.AbacusMenuList.Where(x => x.ParentCatagoryId == 0).ToList();  
//for parentchild  
var ParentChildMenuList = Model.AbacusChildMenuList.Where(x => x.ChildParentId != 0).ToList();  
}  
@*//add sidebar parent and their childname*@  
@if (ParentCatagoryList.Count > 0)  
{  
<ul class="page-sidebar-menu " data-auto-scroll="true" data-slide-speed="200">  
<li class="sidebar-toggler-wrapper">  
<!-- BEGIN SIDEBAR TOGGLER BUTTON -->  
<div class="sidebar-toggler">  
</div>  
<!-- END SIDEBAR TOGGLER BUTTON -->  
</li>  
@foreach (var item in ParentCatagoryList)  
{  
<li>  
<a href="@Url.RouteUrl("GettingStarted", new {catname =HttpUtility.UrlEncode(item.Name.Replace(' ', '-')) })" id="@item.Name.Replace(' ', '-').ToLower()">  
<i class="icon-user"></i>  
<span class="title" style="margin-left: -24px;">@item.Name</span>  
@*<span class="arrow " style="height: 4px;"></span>*@  
<span class="icon-01"style="float: left;  
margin-top: -2px;  
margin-left: 20px;">  
<i class="fa fa-angle-right" aria-hidden="true"></i>  
</span>  
</a>  
<ul class="sub-menu">  
@foreach (var childitem in ParentChildMenuList)  
{  
if (item.Id == childitem.ChildParentId)  
{  
<li style="margin-left: 38px;">  
<span style="background: #999999; width: 4px; height: 4px; float: left; margin-left: -20px; margin-top: 13px;"></span>  
<a href="@Url.RouteUrl("GettingStarted", new { catname = HttpUtility.UrlEncode(childitem.ChildName.Replace(' ', '-'))})" id="@childitem.ChildName.Replace(' ', '-').ToLower()">@childitem.ChildName</a>  
</li>  
}  
}  
</ul>  
</li>  
}  
</ul>  
}  

这里有一个循环我得到父和另一个循环我得到了孩子...... soo多重组合我该怎么办? 如何编写递归函数(MVC.net中父子组合的动态foreach循环)??

0 个答案:

没有答案