zoukankan      html  css  js  c++  java
  • ABP(现代ASP.NET样板开发框架)系列之22、ABP展现层——导航栏设置

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

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

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

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

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


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

    创建菜单

    一个应用程序可能包含不同的模块,而每个模块都可能有它自己的菜单项。在Abp中,需要创建一个派生自NavigationProvider的类来定义一个菜单项。

    假设我们有一个这样的主菜单:

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

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

    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系列文章总目录

  • 相关阅读:
    pytorch中tensor张量的创建
    TensorFlow keras 迁移学习
    TensorFlow keras vgg16net的使用
    TensorFlow keras dropout层
    TensorFlow keras卷积神经网络 添加L2正则化
    TensorFlow-keras 100分类
    TensorFlow-keras fit的callbacks参数,定值保存模型
    fashion_mnist多分类训练,两种模型的保存与加载
    keras API的使用,神经网络层,优化器,损失函数,查看模型层数,compile和fit训练
    ZOJ 2974 矩阵快速幂
  • 原文地址:https://www.cnblogs.com/mienreal/p/4690791.html
Copyright © 2011-2022 走看看