C# 以树状结构显示项目列表

C# 以树状结构显示项目列表,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我有一个表的层次结构[所有表只有两个字段Id、名称],它们彼此相关,结构类似 Level1 -> Level2 [ Foreign key of Level1 Id] -> Level3 [ Foreign key of Level2 Id] -> Statement [ Foreign key of Level3 Id] 最后是一个包含字段UserId、StatementId[Statem

我有一个表的层次结构[所有表只有两个字段Id、名称],它们彼此相关,结构类似

 Level1 ->

    Level2  [ Foreign key of Level1 Id]
       ->
        Level3  [ Foreign key of Level2 Id]
          ->
          Statement [ Foreign key of Level3 Id]
最后是一个包含字段UserId、StatementId[StatementId的外键]的表mapItems。它存储适用于用户的所有语句

在UI中显示项目时,我必须遵循树状结构

在我的控制器中,我将列表作为模型

我可以这样一个接一个地读

model.FirstOrDefault().statement.level3.level2.level1   

这样做有多容易?

我建议您的模型/视图模型需要更改,以表示层次结构(具有
int-ID
字符串名称
列表子项
)以便可以渲染树。例如,使用扩展方法,例如,但在我的例子中,每个级别都有一个对级别顶部的引用。那么我该如何展示这些呢?我不确定我是否理解你的意思(你的问题并没有说明这一点)。您已经展示了
Level1
项具有子对象的集合(
Level2
)。每个
Level2
对象都有一个子对象的集合(
Level3
),每个
Level3
对象都有一个子对象的集合(
Statement
)-很像windows文件夹结构。虽然不清楚为什么您有第二个“映射”表,而不是标准的
ID
ParentID
Name
表结构,但很抱歉,这会造成混淆。我只使用相同的ID ParentID Name structure