asp.net-mvc – 在ASP.NET MVC视图中递归
发布时间:2020-12-15 18:34:11 所属栏目:asp.Net 来源:网络整理
导读:我有一个类别中的一组项目的嵌套数据对象。每个类别可以包含子类别,并且没有对子类别的深度设置限制。 (文件系统将具有类似的结构。)它看起来像这样: class category{ public int id; public string name; public IQueryablecategory categories; public I
我有一个类别中的一组项目的嵌套数据对象。每个类别可以包含子类别,并且没有对子类别的深度设置限制。 (文件系统将具有类似的结构。)它看起来像这样:
class category { public int id; public string name; public IQueryable<category> categories; public IQueryable<item> items; } class item { public int id; public string name; } 我将类别列表传递给我的视图为IQueryable< category> ;.我想将类别输出为一组嵌套的无序列表(< ul>)块。我可以嵌套foreach循环,但是子类的深度将受到嵌套foreach块的数量的限制。在WinForms中,我使用递归来完成类似的处理来填充TreeView,但是在ASPX MVC视图中没有看到任何使用递归的例子。 可以在ASPX视图中递归吗?还有其他视图引擎包含递归视图输出? 解决方法
创建自己的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-core – 加密ASP.Net Core中的连接字符串和其他配置
- ASP.NET – LINQ的优势
- asp.net-mvc-3 – MVC直接在单个对象上调用模型绑定器
- 如何重现由asp.net MVC默认成员资格创建的密码哈希
- asp.net-mvc – KendoUI网格显示总记录数
- asp.net – Windows 7中Safari 5.x的Windows身份验证问题
- asp.net-mvc – 如何使用EF Code First解释为枚举类型
- asp.net-mvc – MVC3 AntiForgeryToken打破了Ajax登录
- asp.net – 为什么在“Glimpse Web Debugger”中没有显示“
- 实体框架 – 对ASP.NET MVC Onion架构的意见
推荐文章
站长推荐
热点阅读