C# Orchard管理员用户页面选项卡不显示

C# Orchard管理员用户页面选项卡不显示,c#,orchardcms,C#,Orchardcms,我需要将原始管理员/用户用作新模块中的一部分,因此我从Orchard.Users AdminController继承了我的CustomModule,并调用了基本索引操作,并添加了具有更高优先级的自定义路由: //AdminController public ActionResult IndexWithJS(UserIndexOptions options, PagerParameters pagerParameters) { base.Index(options,pagerParamet

我需要将原始管理员/用户用作新模块中的一部分,因此我从Orchard.Users AdminController继承了我的CustomModule,并调用了基本索引操作,并添加了具有更高优先级的自定义路由:

//AdminController
public ActionResult IndexWithJS(UserIndexOptions options, PagerParameters pagerParameters)
{
    base.Index(options,pagerParameters);
    return View("Index");
}

//Route
[OrchardFeature("MyModule.Users")]
public class Routes : IRouteProvider
{
    public IEnumerable<RouteDescriptor> GetRoutes()
    {
        yield return new RouteDescriptor()
        {
            Priority = 100,
            Route = new Route("Admin/Users/",
                new RouteValueDictionary
                {
                    {"area", "MyModule.Users"},
                    {"controller", "Admin"},
                    {"action", "IndexWithJS"},
                },
                new RouteValueDictionary(),
                new RouteValueDictionary { { "area", "MyModule.Users" } },
                new MvcRouteHandler())
        };
    }

    public void GetRoutes(ICollection<RouteDescriptor> routes)
    {
        foreach (var route in this.GetRoutes())
        {
            routes.Add(route);
        }
    }
}

//new Index.cshtml
@model Orchard.Users.ViewModels.UsersIndexViewModel

@Html.Partial("~/Modules/Orchard.Users/Views/Admin/Index.cshtml", Model)
@Script.Include("additionalscript.js");

现在我得到了标签,但用户标签是重复的。如果我不包括我自己的NavigationProvider,则不会显示任何选项卡。

选项卡通过实现
INavigationProvider
界面并对第三级菜单项使用
LocalNav()
方法进行控制

public void GetNavigation(NavigationBuilder builder) {
    builder.AddImageSet("webshop")
        .Add(T("Customers"), "7", menu => menu.Action(...})
        .Add(T("Details"), "0", item => item.Action(...}).LocalNav())
        .Add(T("History"), "1", item => item.Action(...).LocalNav())
        .Add(T("Contact"), "2", item => item.Action(...).LocalNav()));
}

ref:

关于您的编辑,这可能与您可以在每个项目上设置的
LinkToFirstChild()
选项有关。
public void GetNavigation(NavigationBuilder builder) {
    builder.AddImageSet("webshop")
        .Add(T("Customers"), "7", menu => menu.Action(...})
        .Add(T("Details"), "0", item => item.Action(...}).LocalNav())
        .Add(T("History"), "1", item => item.Action(...).LocalNav())
        .Add(T("Contact"), "2", item => item.Action(...).LocalNav()));
}