你的位置:首页 > ASP.net教程

[ASP.net教程]Orchard扩展 自定义后台管理导航菜单 Admin Menu


金天:学习一个新东西,就要持有拥抱的心态,如果固守在自己先前的概念体系,就会有举步维艰的感觉。
金天:看源码永远是Coder学习的最快捷路径。
金天微信:15998603918 欢迎找我聊聊天。
 
看本文需要对Orchard大致体系, 特别是Module插件体系有一定的理解。
 
Orchard Admin Menu
 
自定义后台管理导航菜单,只要在自己的Module里面实现接口INavigationProvider, 如下图。
 


 
所有需要做的很简单,像上图,添加AdminMenu实现INavigationProvider接口。
 
99%的逻辑都在 GetNavigation(NavigationItemBuilder builder) 
定义菜单标题
定义菜单链接
定义菜单位置
定义菜单样式等等
 
这里有个非标准逻辑,笔者这里称为脏逻辑:
Position(string position), 正常排序如 -2, -1, 1, 2, 3
如果设置成before or null, 则为-9999, 如果想排在更靠前需要比-9999更小
如果设置成after, 则为9999, 如果想排在更靠后, 需要比9999更大
 
注:
1. 更多具体怎么实现GetNavigation, 参考源码所有实现INavigationProvider接口的类即可。看源码永远是coder学习的捷径。
 
2. 笔者这里实现的是RecentMenus, 就是把最近三次点到的Menu置顶, 中间用到IActionFilter。