Asp.net mvc 如何在MVC视图页面中呈现单链表
当我试图在MVC中创建TreeView文件夹结构时。我有下面这样的类文件 类文件Asp.net mvc 如何在MVC视图页面中呈现单链表,asp.net-mvc,treeview,Asp.net Mvc,Treeview,当我试图在MVC中创建TreeView文件夹结构时。我有下面这样的类文件 类文件 public class TreeViewFolder { public string FolderPath { get; set; } public string FolderName { get; set; } public List<TreeViewFolder> MyTreeList { get; set; } } 公共类树视图文件夹 { 公共字符串FolderP
public class TreeViewFolder
{
public string FolderPath { get; set; }
public string FolderName { get; set; }
public List<TreeViewFolder> MyTreeList { get; set; }
}
公共类树视图文件夹
{
公共字符串FolderPath{get;set;}
公共字符串FolderName{get;set;}
公共列表MyTreeList{get;set;}
}
我需要在MVC视图中呈现上面的列表。我不知道如何在MVC视图中呈现单链表数据。任何帮助都将不胜感激
多亏了您可以创建一个扩展方法,该方法使用递归来构建
和元素来显示文件夹的层次结构
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)
然后根据您的需求设计元素的样式
注意:在视图中使用语句添加,或者添加对web.config
的部分的引用,您可以创建一个扩展方法,该方法使用递归来构建
和元素来显示文件夹的层次结构
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)
然后根据您的需求设计元素的样式
注意:在视图中使用语句添加,或者添加对web.config
的部分的引用,您可以创建一个扩展方法,该方法使用递归来构建
和元素来显示文件夹的层次结构
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)
然后根据您的需求设计元素的样式
注意:在视图中使用语句添加,或者添加对web.config
的部分的引用,您可以创建一个扩展方法,该方法使用递归来构建
和元素来显示文件夹的层次结构
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)
然后根据您的需求设计元素的样式
注意:在视图中使用语句添加,或添加对web.config
的
部分的引用,以显示什么?只是文件夹名称的层次结构?要显示什么?只是文件夹名称的层次结构?要显示什么?只是文件夹名称的层次结构?要显示什么?仅仅是文件夹名称的层次结构?我不需要在控制器中初始化和填充数据,并将其传递给方法,因为它在Menu.cs类中得到处理。如何在局部视图上传递返回的MvcHtmlString
,以查看它。在您的指导下,我创建了另一个方法,该方法接受字符串并将其返回为MvcHtmlString
@ARr0w,您的注释似乎与您的相关,应该在那里进行:)我不需要在控制器中初始化和填充数据,也不需要将其传递给方法,因为它在Menu.cs类中得到了处理。如何在局部视图上传递返回的MvcHtmlString
,以查看它。在您的指导下,我创建了另一个方法,该方法接受字符串并将其返回为MvcHtmlString
@ARr0w,您的注释似乎与您的相关,应该在那里进行:)我不需要在控制器中初始化和填充数据,也不需要将其传递给方法,因为它在Menu.cs类中得到了处理。如何在局部视图上传递返回的MvcHtmlString
,以查看它。在您的指导下,我创建了另一个方法,该方法接受字符串并将其返回为MvcHtmlString
@ARr0w,您的注释似乎与您的相关,应该在那里进行:)我不需要在控制器中初始化和填充数据,也不需要将其传递给方法,因为它在Menu.cs类中得到了处理。如何在局部视图上传递返回的MvcHtmlString
,以查看它。在您的指导下,我创建了另一个方法,该方法接受字符串并将其返回为MvcHtmlString
@ARr0w,您的评论似乎与您的相关,应该在那里发表:)