如何在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>部分的引用