我试图找出在ASP.NET中创建菜单的正确解决方案。菜单包含项目和子项目,并受用户权限的约束。所以我有一个MenuService,它返回当前用户的菜单。但是我不知道如何实现菜单。
到目前为止,我找到了3种可能的解决方案:
这些解决方案中哪一项适合这项工作?还有其他人吗?
答案 0 :(得分:0)
您可以使用MvcSiteMapProvider
- 它与Web Forms SiteMap provider model非常相似,但是为MVC制作。
基本上,整个SiteMap
层次结构被加载到缓存中并在用户之间共享。您可以通过多种方式配置节点 - 从数据库加载它们,您可以使用一个或多个dynamic node providers。它具有security trimming功能,可自动读取每个请求的[Authorize]
属性,并相应地更改各个项目的可见性。
它使用的菜单和面包屑HTML帮助程序是模板化的,因此您可以更改它们以输出您需要的任何HTML。
完全披露:我为这个项目做出了重大贡献。