Вы можете создать метод расширения, который использует рекурсию для построения <ul>
и <li>
элементов для отображения иерархии папок
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();
}
}
Затем в контроллере, инициализировать и заполнить и экземпляр TreeViewFolder
, и в поле зрения
@model TreeViewFolder
....
@Html.FolderTree(Model)
Затем введите элементы, соответствующие вашим требованиям
Примечание: либо добавить using
заявление в представлении или добавить ссылку на <namespaces>
секции web.config
Что вы хотите отобразить? Просто иерархия имен папок? –