如何建立一个嵌套的菜单与MVC4

本文关键字:嵌套 MVC4 一个 菜单 何建立 建立 | 更新日期: 2023-09-27 18:03:21

在我进入自定义实现之前,我想询问社区是否有任何内置的帮助器用于在MVC4中构造实体的嵌套菜单。我有一个这样的数据层次结构:

> Folder 1
> Folder 2
>> Folder 2.1
>> Folder 2.2
>>> Item 2.2.1
>>> Folder 2.2.1
>> Folder 2.3
> Folder 3

我正在考虑将嵌套数组的数组(嵌套数组的数组[嵌套数组的数组…])传递到控制器中,以构建相应的嵌套链接列表。在深入讨论这个问题之前,我有几个问题:

  1. 如果有的话,有什么工具可以帮助解决这个问题?
  2. 如果你必须构建自定义,你会使用什么数据结构?

我对MVC/c#完全陌生,所以任何建议/指针都会很棒。

如何建立一个嵌套的菜单与MVC4

如果有的话,有什么样的工具可以帮助实现这一点?

我个人还没有找到现成的解决方案。

如果你必须构建自定义,你会使用什么数据结构?

最好的办法是为此构建一个自定义类。比如一个tree有一个dictionary of nodes。您可以构建一个自定义的,如下:
public class Tree
{
    private TreeNode rootNode;
    public TreeNode RootNode
    {
        get { return rootNode; }
        set
        {
            if (RootNode != null)
                Nodes.Remove(RootNode.Id);
            Nodes.Add(value.Id, value);
            rootNode = value;
        }
    }
    public Dictionary Nodes { get; set; }
    public Tree()
    {
    }
    public void BuildTree()
    {
        TreeNode parent;
        foreach (var node in Nodes.Values)
        {
            if (Nodes.TryGetValue(node.ParentId, out parent) &&
                node.Id != node.ParentId)
            {
                node.Parent = parent;
                parent.Children.Add(node);
            }
        }
    }
}