我有一个嵌套的数据对象,用于类别中的一组项目。每个类别可以包含子类别,并且子类别的深度没有设置限制。 (文件系统将具有类似的结构。)它看起来像这样:
class category
{
public int id;
public string name;
public IQueryable<category> categories;
public IQueryable<item> items;
}
class item
{
public int id;
public string name;
}
我将一个类别列表传递给我的 View
IQueryable<category>
.我想将类别输出为一组嵌套的无序列表( <ul>
)块。我可以嵌套 foreach 循环,但是子类别的深度将受到嵌套 foreach 块数的限制。在 WinForms 中,我使用递归来填充 TreeView
做了类似的处理。 ,但我还没有看到任何在 ASPX MVC View 中使用递归的示例。可以在 ASPX View 中完成递归吗?是否有其他 View 引擎包含 View 输出的递归?
最佳答案
创建您自己的 HtmlHelper 扩展方法,如下所示:
namespace System.Web.Mvc
{
public static class HtmlHelperExtensions
{
public static string CategoryTree(this HtmlHelper html, IEnumerable<Category> categories)
{
string htmlOutput = string.Empty;
if (categories.Count() > 0)
{
htmlOutput += "<ul>";
foreach (Category category in Categories)
{
htmlOutput += "<li>";
htmlOutput += category.Name;
htmlOutput += html.CategoryTree(category.Categories);
htmlOutput += "</li>";
}
htmlOutput += "</ul>";
}
return htmlOutput;
}
}
}
你应该问很有趣,因为我昨天才真正创建了其中一个。
关于asp.net-mvc - ASP.NET MVC View 中的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/942489/