Asp.net core ASP.NET核心递归函数,用于显示具有多个子行的表
我有一个表,它有ID、Name、ParentId。 因此,基本上,例如,我可以在数据库表中包含这些条目—— 我需要做的是创建一个包含嵌套行的表,并在展开时显示子项Asp.net core ASP.NET核心递归函数,用于显示具有多个子行的表,asp.net-core,razor-pages,Asp.net Core,Razor Pages,我有一个表,它有ID、Name、ParentId。 因此,基本上,例如,我可以在数据库表中包含这些条目—— 我需要做的是创建一个包含嵌套行的表,并在展开时显示子项 名称1 姓名2 名字5 名字3 名字4 姓名7 名字6 但筑巢可能不止3个。所以我需要在视图中使用某种递归函数。目前我一直在使用这个代码 <tbody> @foreach (var entity in Model) { if (entity.ParentId ==
- 姓名2
- 名字5
- 名字3
- 名字4
- 名字6
<tbody>
@foreach (var entity in Model)
{
if (entity.ParentId == null)
{
<tr>
<td><button class="expandButton" type="button" ></button></td>
<td>
@entity.Name
</td>
<td>
<a asp-action="ManipulateEntity" asp-route-id="@entity.Id">Manipulate</a>
</td>
</tr>
int child = 1;
foreach (var childEntity in Model.Where(i => i.ParentId == entity.Id))
{
<tr>
<td>
@childEntity.Name
</td>
<td>
<a asp-action="ManipulateEntity" asp-route-id="@childEntity.Id">Manipulate</a>
</td>
</tr>
child++;
}
}
}
@foreach(模型中的var实体)
{
if(entity.ParentId==null)
{
@实体名称
操纵
int child=1;
foreach(模型中的var childEntity.Where(i=>i.ParentId==entity.Id))
{
@childEntity.Name
操纵
儿童++;
}
}
}
但不幸的是,这只显示了第一个家长和他的孩子的结果,当有孩子的孩子时,它会突然出现,只显示第一个家长和他的孩子。正如你们所看到的,我正在遍历基本上是列表的模型
如何在视图侧执行此操作?我已经提供了理解我当前逻辑的最低限度的代码,正如我所说的,它只显示了第一位家长和他的孩子,但我自己无法弄清楚我应该做些什么来实现这一点。您需要只使用razor pages而不使用第三方来实现它吗?没有第三方。好吧,我会考虑到这一点,因为我有所有需要的信息。我在Db表中有每个输入的父ID,所以我想我需要一种方法,通过视图中的某种递归函数来实现它。可能有人也有同样的问题,可以分享解决方案。你试过jstree吗?没有,但我看不出它对我有什么帮助。另外,jstree是一个jquery插件,我当然不能使用它。据我所知,jstree帮助您使用正确的标记创建树,这在本问题中不是问题。在这里,您不知道节点中有多少个和哪些节点有子节点,以及它们的子节点是否有自己的子节点。。所以您需要执行递归函数,以使其正确。我最不关心的是标记问题,因为它们都是行,可能只会将#number添加到parent,将.1添加到child,将.1.1添加到child的child。。。所以我真的不认为jstree有什么帮助