如何在MVC视图页面中呈现单链表

 2023-02-17    348  

问题描述

我正在尝试在MVC中创建TreeView文件夹结构.我有下面的课程文件.

类文件

如何在MVC视图页面中呈现单链表

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

我需要在MVC视图中呈现上面的列表.我不知道如何在MVC视图中渲染单个链接列表数据.任何帮助都会受到赞赏.

感谢

推荐答案

您可以创建一个扩展方法,该方法使用递归来构建<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视图页面中呈现单链表,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/34260.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。