1

在我进入自定义实现之前,我想问问社区是否有任何内置的帮助程序可以用 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# 完全陌生,所以任何建议/指针都会很棒。

4

1 回答 1

1

如果有的话,有哪些工具可以帮助解决这个问题?

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

如果您必须构建自定义数据结构,您会使用哪些数据结构?

最好的办法是为此构建一个自定义类。就像一个treedictionary 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);
            }
        }
    }
}

如果您想了解更多详细信息,那么此链接可以满足您的所有需求。

于 2013-03-10T03:40:31.000 回答