asp.net-mvc - parameter - tag helpers asp net core
Cómo renderizar una sola lista vinculada en la página MVC View (1)
Puede crear un método de extensión que use recursividad para construir elementos <ul>
y <li>
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 <namespaces>
de web.config
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<TreeViewFolder> 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