1

在我進入一個自定義的實現之前,我想問一下社區是否有任何內置的幫助器來構建MVC4中的實體嵌套菜單。我有數據的層次結構是這樣的:如何使用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#的新手,所以任何建議/指針都會很棒。

+0

數據來自數據源嗎?或者它是靜態的? – 2013-03-10 03:31:19

+0

它來自DTO,我可以通過數據庫直接從POCO以任何方式構建。所以數據源,不是靜態的(我認爲) – RobVious 2013-03-10 03:34:20

回答

1

什麼樣的工具可以幫助解決這個問題?

我個人還沒有碰到現成的解決方案。

如果您必須構建自定義,您將使用哪些數據結構?

最好的辦法是爲此構建一個自定義類。像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); 
      } 
     } 
    } 
} 

,然後this link擁有所有你所需要的。

+0

哇!真棒。我沒有考慮給這個課加一個課。謝謝Bhushan – RobVious 2013-03-10 04:05:58

+0

@RobVious很高興幫助... – 2013-03-10 04:18:54