四、Orchard Core入门:自定义模块在管理后台中增加菜单

自定义模块已经建立好了,我们在Admin后台启用它,并没有什么效果。
如何为我们的自定义模块增加一个菜单项呢?


image.png
  1. 我们打开MyModule项目文件,使用NuGet管理器,为该工程增加两个依赖项
    OrchardCore.Navigation、OrchardCoreAdmin。
  2. 在Controllers文件夹增加个AdminTextNavController.cs文件
using Microsoft.AspNetCore.Mvc;
using OrchardCore.Admin;

namespace MyModule.Controllers
{
    [Admin]//使该类具有Admin权限和主题
    public class AdminTextNavController :Controller
    {
        public ActionResult SubMenu1()
        {
            return View();
        }
        public ActionResult SubMenu2()
        {
            return View();
        }
    }
}
  1. 为SubMenu1和SubMenu2创建两个视图


    image.png

    在两个视图输入一些内容以区分:

//SubMenu1.cshtml
<p>子菜单1</p>

//SubMenu2.cshtml
<p>子菜单2</p>
  1. 增加菜单项,需要实现INavigationProvider接口,在模块的根目录下创建AdminMenu.cs文件
using Microsoft.Extensions.Localization;
using OrchardCore.Navigation;
using System;
using System.Threading.Tasks;

namespace MyModule
{
    public class AdminMenu : INavigationProvider
    {
        public IStringLocalizer T { get; set; }
        public AdminMenu(IStringLocalizer<AdminMenu> localizer)
        {
            T = localizer;
        }
        public Task BuildNavigationAsync(string name, NavigationBuilder builder)
        {
            //该菜单只作用于Admin菜单中
            if (!String.Equals(name, "admin", StringComparison.OrdinalIgnoreCase))
            {
                return Task.CompletedTask;
            }
            builder.Add(T["MyModules"], "after", rootView => rootView
                  .Add(T["子菜单1"], "1", SubMenu1 => SubMenu1
                    .Action("SubMenu1", "AdminTextNav", new { area = "MyModule" }))
                  .Add(T["子菜单2"], "1", SubMenu2 => SubMenu2
                  .Action("SubMenu2", "AdminTextNav", new { area = "MyModule" })));
            return Task.CompletedTask;
        }
    }
}
  1. 在Startup.cs中使用域模式注册这个菜单
        public override void ConfigureServices(IServiceCollection services)
        {
            services.AddScoped<INavigationProvider, AdminMenu>();
        }

很简单,然后运行Web项目看看效果。


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 翻译自“Collection View Programming Guide for iOS” 0 关于iOS集合视...
    lakerszhy阅读 3,920评论 1 22
  • 默岩yan阅读 170评论 0 0
  • 自我管理之读书笔记 最近看的一本新书来自丹尼尔·科伊尔《十万小时天才理论》 里面好多好棒的天才例子,今天学习到了新...
    JessicaPeng阅读 237评论 0 1
  • 孤独的静默,让你看见赤裸的自我。举目四望,倏如飞鸟的思绪与欲求,孩童的笑声与青年的渴盼,从你那里涌向我的静默。你从...
    YAOAYUAN阅读 860评论 6 8
  • 春天来了,大地复苏。到处都散播着春天的种子。 知道我是怎样知道春天来了吗?春天不用去找,只要用眼睛去...
    佳_8dc0阅读 281评论 0 0