ABP(现代ASP.NET样板开发框架)系列之2二、ABP展示层——导航栏设置

点这里进入ABP系列文章总目录javascript

 

基于DDD的现代ASP.NET开发框架--ABP系列之2二、ABP展示层——导航栏设置
html

 

ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。java

ABP的官方网站http://www.aspnetboilerplate.comgit

ABP在Github上的开源项目https://github.com/aspnetboilerplategithub

 


 

每个WEB应用程序都有导航菜单,Abp也为用户提供了通用的建立和显示菜单方式。服务器

建立菜单

一个应用程序可能包含不一样的模块,而每一个模块均可能有它本身的菜单项。在Abp中,须要建立一个派生自NavigationProvider的类来定义一个菜单项。架构

假设咱们有一个这样的主菜单:框架

  • Tasks
  • Reports
  • Administration 1 User Management 2 Role Management

由上可知,Administration菜单项有两个子菜单项。对应的生成方法以下:ide

public class SimpleTaskSystemNavigationProvider : NavigationProvider
{
    public override void SetNavigation(INavigationProviderContext context)
    {
        context.Manager.MainMenu
            .AddItem(
                new MenuItemDefinition(
                    "Tasks",
                    new LocalizableString("Tasks", "SimpleTaskSystem"),
                    url: "/Tasks",
                    icon: "fa fa-tasks"
                    )
            ).AddItem(
                new MenuItemDefinition(
                    "Reports",
                    new LocalizableString("Reports", "SimpleTaskSystem"),
                    url: "/Reports",
                    icon: "fa fa-bar-chart"
                    )
            ).AddItem(
                new MenuItemDefinition(
                    "Administration",
                    new LocalizableString("Administration", "SimpleTaskSystem"),
                    icon: "fa fa-cogs"
                    ).AddItem(
                        new MenuItemDefinition(
                            "UserManagement",
                            new LocalizableString("UserManagement", "SimpleTaskSystem"),
                            url: "/Administration/Users",
                            icon: "fa fa-users",
                            requiredPermissionName: "SimpleTaskSystem.Permissions.UserManagement"
                            )
                    ).AddItem(
                        new MenuItemDefinition(
                            "RoleManagement",
                            new LocalizableString("RoleManagement", "SimpleTaskSystem"),
                            url: "/Administration/Roles",
                            icon: "fa fa-star",
                            requiredPermissionName: "SimpleTaskSystem.Permissions.RoleManagement"
                            )
                    )
            );
    }
}

MenuItemDefinition能够有一个惟一的名字,一个用于本地化显示的名字,一个url和一个icon,此外,菜单项可能须要与特定用户权限相结合(相关权限系统正在开发,暂时尚未说明文档)。学习

InavigationProviderContext方法可以获取现有的菜单项、添加菜单或菜单项。所以,不一样的模块能够添加各自的菜单。

建立完成导航后,还须要在对应模块预初始化时注册到Abp配置文件中:

Configuration.Navigation.Providers.Add<SimpleTaskSystemNavigationProvider>(); 

显示菜单

IuserNavigationManager能够注入、获取和显示菜单。能够在服务器端建立菜单。

Abp自动生成的javascript API使得用户可以在客户端获取菜单,对应的方法和对象在命名空间abp.nav中。例如,在客户端使用abp.nav.menus.MainMenu能够用来获取主菜单。

以上文档展现了Abp如何给用户建立和显示菜单,你能够尝试创建模版、查看源代码以便更深刻的学习。

 


 

但愿更多国内的架构师能关注到ABP这个项目,也许这其中有能帮助到您的地方,也许有您的参与,这个项目能够发展得更好。

欢迎加QQ群:

ABP架构设计交流群:134710707 ABP架构设计交流群      ABP架构设计交流2群: 579765441ABP架构设计交流群2

 

点这里进入ABP系列文章总目录

相关文章
相关标签/搜索