如何在MVC View页面单独渲染链接列表
正如我想在MVC中创build一个TreeView文件夹结构。 我有类文件,如下所示。
类文件
public class TreeViewFolder { public string FolderPath { get; set; } public string FolderName { get; set; } public List<TreeViewFolder> MyTreeList { get; set; } }
我需要在MVC视图中呈现上面的列表。 我不知道如何在MVC视图中呈现单个链接列表数据。 任何帮助将不胜感激。
谢谢
您可以创build一个扩展方法,使用recursion构build<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)
然后devise出符合您要求的元素
注意:在视图中添加using
语句,或者添加对web.config
的<namespaces>
部分的引用