Cómo renderizar una sola lista vinculada en la página MVC View

Como estoy tratando de crear una estructura de carpetas TreeView en MVC. Tengo un archivo de clase como el siguiente.

Archivo de clase

public class TreeViewFolder { public string FolderPath { get; set; } public string FolderName { get; set; } public List MyTreeList { get; set; } } 

Necesito presentar esa lista anterior en MVC View. No tengo idea de cómo renderizar datos de una sola lista vinculada en MVC View. Cualquier ayuda será apreciada.

Gracias

Puede crear un método de extensión que use recursividad para construir elementos

    y

  • para mostrar la jerarquía de carpetas

     public static class FolderTreeExtensions { public static MvcHtmlString FolderTree(this HtmlHelper helper, TreeViewFolder folder) { return MvcHtmlString.Create(TreeLeaf(folder)); } // Recursive function private static string TreeLeaf(TreeViewFolder folder) { StringBuilder html = new StringBuilder(); TagBuilder div = new TagBuilder("div"); div.InnerHtml = folder.FolderName; html.Append(div.ToString()); if (folder.MyTreeList != null) { foreach (TreeViewFolder subFolder in folder.MyTreeList) { html.Append(TreeLeaf(subFolder)); } } TagBuilder item = new TagBuilder("li"); item.InnerHtml = html.ToString(); TagBuilder container = new TagBuilder("ul"); container.InnerHtml = item.ToString(); return container.ToString(); } } 

    Luego, en su controlador, inicialice y complete la instancia de TreeViewFolder , y en la vista

     @model TreeViewFolder .... @Html.FolderTree(Model) 

    Luego, diseñe los elementos para que se adapten a sus necesidades

    Nota: agregue una instrucción using en la vista o agregue una referencia a la sección de web.config