asp.net-mvc - net - partialview



如何在MVC View頁面單獨渲染鏈接列表 (1)

您可以創建一個擴展方法,使用遞歸構建<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語句,或者添加對web.config<namespaces>部分的引用

正如我想在MVC中創建一個TreeView文件夾結構。 我有類文件,如下所示。

類文件

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

我需要在MVC視圖中呈現上面的列表。 我不知道如何在MVC視圖中呈現單個鏈接列表數據。 任何幫助將不勝感激。

謝謝





treeview