当前位置: 首页 > news >正文

音乐网站怎么做班级网站网页设计

音乐网站怎么做,班级网站网页设计,谷歌推广关键词匹配,计算机网络工程师中级职称ABP入门系列目录——学习Abp框架之实操演练源码路径#xff1a;Github-LearningMpaAbp 完成了增删改查以及页面展示#xff0c;这一节我们来为任务清单添加【导航菜单】。 在以往的项目中#xff0c;大家可能会手动在layout页面中添加一个a标签来新增导航菜单#xff0c;这… ABP入门系列目录——学习Abp框架之实操演练源码路径Github-LearningMpaAbp 完成了增删改查以及页面展示这一节我们来为任务清单添加【导航菜单】。 在以往的项目中大家可能会手动在layout页面中添加一个a标签来新增导航菜单这也是一种方式但是如果要针对不同用户不同权限决定是否显示某个菜单那么直接在layout页面中去控制就不方便了。 不过ABP已经为大家考虑了这一点集成了通用的创建和显示菜单的方式。其主要代码集成在Abp.Application.Navigation命名空间下相应源码在此。 下面我们就来梳理下导航菜单是如何实现和使用。 一、如何使用Abp集成的导航菜单 针对我们的『任务清单』Deom我们需要在导航栏上添加一个【Task List】的菜单入口。 1.打开web展现层定位到App_Start/xxxNavigationProvider.cs。 public class LearningMpaAbpNavigationProvider : NavigationProvider{public override void SetNavigation(INavigationProviderContext context){context.Manager.MainMenu.AddItem(new MenuItemDefinition(Home,L(HomePage),url: ,icon: fa fa-home,requiresAuthentication: true)).AddItem(new MenuItemDefinition(Tenants,L(Tenants),url: Tenants,icon: fa fa-globe,requiredPermissionName: PermissionNames.Pages_Tenants)).AddItem(new MenuItemDefinition(Users,L(Users),url: Users,icon: fa fa-users,requiredPermissionName: PermissionNames.Pages_Users)).AddItem(new MenuItemDefinition(About,L(About),url: About,icon: fa fa-info));} }该文件中默认定义了Home、Tenants、Users、About四个菜单。注意观察的话想必会注意到Home菜单设置了requiresAuthentication: true即只有登陆后才会显示该菜单。Tenants和Users菜单设置了requiredPermissionName属性即用户具有指定的权限时才显示菜单。About菜单没有限制默认显示。 每一个菜单项都是一个MenuItemDefinition其中主要包括Name唯一名称DisplayName本地化显示名称Url菜单跳转Icon指定菜单图标。 解释到这里大家自己都可以依葫芦画瓢新增菜单了。 2.添加[Task List]菜单项 AddItem(new MenuItemDefinition(TaskList,L(Task List),url: Tasks/Index,icon: fa fa-tasks,requiresAuthentication: true)保存刷新页面即可看到新增的[Task List]菜单了。 PS:之所以页面上会显示为[Task List]是因为我们并没有维护本地化资源文件。在对应的本地化配置文件中新增名为Task List的即可。比如在中文的本地化文件中添加text nameTask List value任务清单 /重新启站点将语言切换为中文。 二、Abp集成的导航菜单的代码结构 1.先来看看相关代码的类型依赖关系图 类型依赖关系图 分析发现abp集成的导航菜单实际上是应用了组合设计模式。 其中MenuDefinition为根节点MenuItemDefinition为树枝节点其中MenuItemDefinition中也维护了一个ListMenuItemDefinition的集合当集合为空时MenuItemDefinition即为树叶节点。 2.从图中可以看出主要是由以下几部分组成 MenuDefinition/MenuItemDefinition菜单/菜单项定义。其中菜单项包括Name唯一名称DisplayName本地化显示名称Url菜单跳转Icon指定菜单图标。此外可以通过指定RequiresAuthenticationtrue来限制菜单项只有对登录用户可见同时也可以指定RequiredPermissionName来限定当用户有某个权限时菜单才可见。UserMenu/UserMenuItem封装了用于显示给用户的菜单/子菜单集合。INavigationConfiguration/NavigationConfiguration导航配置维护了NavigationProvider的列表。NavigationProviderProvider模式将api的定义和实现分离。抽象类定义了SetNavigation方法在需要设置导航的项目中实现该类并在对应的模块中PreInitialize方法中注册***NavigationProvider的实现。INavigationManager/NavigationManager其中接口中定义了一个Dictionary用来存储应用程序中定义的所有菜单项和一个MainMenu。注入了对INavigationConfiguration的引用以便在NavigationManager中的Initialize方法遍历INavigationConfiguration配置的NavigationProvider列表进行菜单的初始化。IUserNavigationManager/UserNavigationManager是对NavigationManager的一次封装。其中接口中定义了GetMenuAsync的重载方法用来获取指定用户的菜单。INavigationProviderContext/NavigationProviderContext封装了INavigationManager的上下文类用于传参。三、Abp集成的导航菜单的具体实现 核心逻辑NavigationManager遍历NavigationConfiguration中维护的NavigationProvider列表并调用NavigationProvider实现的SetNavigation方法来完成导航菜单的初始化。 NavigationManager负责初始化菜单 NavigationManager.cs NavigationConfiguration负责维护NavigationProvider的实现列表。 NavigationConfiguration.cs 具体的NavigationProvider的实现 xxxxNavigationProvider.cs 在对应的模块中注册具体的NavigtionProvider到INavigationConfiguration维护的列表中。 xxxxAbpWebModule.cs UserNavigationManager对NavigationManager进行了进一步的封装根据用户和权限去创建和获取菜单。 IUserNavigationManager.cs 在LayoutController中通过注入对IUserNavigationManager的引用来获取菜单并由_TopMenu分部页进行最终呈现。 public class LayoutController : LearningMpaAbpControllerBase{private readonly IUserNavigationManager _userNavigationManager;private readonly ISessionAppService _sessionAppService;private readonly IMultiTenancyConfig _multiTenancyConfig;private readonly ILanguageManager _languageManager;public LayoutController(IUserNavigationManager userNavigationManager, ISessionAppService sessionAppService, IMultiTenancyConfig multiTenancyConfig,ILanguageManager languageManager){_userNavigationManager userNavigationManager;_sessionAppService sessionAppService;_multiTenancyConfig multiTenancyConfig;_languageManager languageManager;}[ChildActionOnly]public PartialViewResult TopMenu(string activeMenu ){var model new TopMenuViewModel{MainMenu AsyncHelper.RunSync(() _userNavigationManager.GetMenuAsync(MainMenu, AbpSession.ToUserIdentifier())),ActiveMenuItemName activeMenu};return PartialView(_TopMenu, model);} }至此我们完成了对导航菜单的梳理和总结。 11人点赞 Abp架构入门系列 作者圣杰 链接https://www.jianshu.com/p/24e6f6e8dbdb 来源简书 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。
http://www.zqtcl.cn/news/860980/

相关文章:

  • 网站建设一个多少钱wordpress朗读句子插件
  • 网站关键词怎么填写找代理商的渠道有哪些
  • 网站开发销售简历范文新建网站网络空间
  • 舟山外贸建站公司制作公司简介
  • 菜鸟是什么网站威海网站建设费用
  • 网站开发花费如何制作个人网页兼职
  • 网站鼠标特效用户体验最好的网站
  • 网站设计步骤图南通网站建设公司
  • 做盗版系统网站会不会开发次元世界
  • 下载爱南宁官方网站手机app开发软件有哪些
  • 云浮网站设计不收费的企业查询网站
  • 网站栏目怎么做iis网站筛选器被挂马
  • 网站开发中遇到的主要问题品牌营销策略包括哪些内容
  • 网站制作易捷网络十大社区团购平台有哪些
  • 哈尔滨口碑好的建站公司做网站制作一般多少钱
  • 河南网站网站制作华为品牌vi设计
  • 网站设置默认主页甘肃省第八建设集团公司网站
  • 自己做网站美工关键词优化排名网站
  • 淄博手机网站建设报价商业网站地方频道
  • 小说网站开发业务逻辑php 网站
  • 专业的做网站动态个人网站模板
  • 设计师网站设计网站开发试题库
  • 做网站是用c 吗东莞网络推广优化
  • 外贸soho网站建设wordpress配置搜索引擎优化
  • 嘉兴网站公司安卓优化大师2023
  • 电影网站开发影院座位问题正能量网站大全
  • dede手机网站更新成安专业做网站
  • 做能支付的网站贵吗品牌策划费用
  • 营销网站开发网站建设工作室
  • 如何把自己做的网站挂网上网页版梦幻西游红色伙伴搭配