我不相信有一种方法可以单独使用Orchard的导航提供程序。我做了类似的事情,但我必须分别处理第三级,并从我自己的控制器中自己实现菜单UI。
您仍然需要在模块的导航提供程序中添加第三个级别,因为这会正确标记LHS菜单和选项卡选项。沿着线的东西:
namespace Company.MyModule {
public class TileSortAdminMenu : INavigationProvider {
private Localizer T { get; set; }
public string MenuName { get { return "admin"; } }
public void GetNavigation(NavigationBuilder builder) {
builder
.AddImageSet("mymodule")
.Add(T("My Module"), "5", menu => menu
.LinkToFirstChild(true)
.Add(T("Content Item 1"), "1", item => item
.LocalNav()
.LinkToFirstChild(true)
.Add(T("Tab 1"), "1", tab => tab
.LocalNav()
.Action("Index", "MyModuleAdmin", new { area = "Company.MyModule"})
)
.Add(T("Tab 2"), "2", tab => tab
.LocalNav()
.Action("Tab2", "MyModuleAdmin", new { area = "Company.MyModule"})
)
)
.Add(T("Content Item 2"), "2", item => item
.LocalNav()
.LinkToFirstChild(true)
.Add(T("Tab 1"), "1", tab => tab
.LocalNav()
.Action("ContentItem2Tab1", "MyModuleAdmin", new { area = "Company.MyModule"})
)
.Add(T("Tab 2"), "2", tab => tab
.LocalNav()
.Action("ContentItem2Tab2", "MyModuleAdmin", new { area = "Company.MyModule"})
)
)
);
}
}
}
在您看来,您可以通过使用类似maintian果园的造型:
<ul class="localmenu localmenu-submenu">
<li class="selected"><a href="@Url.Action("Index", "MyModuleAdmin", new { area = "Company.MyModule"})">Tab 1</a<</li>
<li><a href="@Url.Action("Tab2", "MyModuleAdmin", new { area = "Company.MyModule"})">Tab 2</a></li>
</ul>
所在类别localmenu-submenu
是你自己的风格调整定型钩,和你将类selected
添加到您正在查看的任何选项卡。
或者,根据您要实现的内容,您可以实现jQuery UI的Tabs(可通过Orchard.jQuery资源清单获得),并且只需更新样式即可查看Orchard-y。
你能澄清你的问题吗?很难理解你想要做什么。 –
@Jennet,你过得怎么样? – justrhysism
最后,我重新调整了我的页面布局,这样我就不会遇到需要使用制表符的“第三个”级别。 对不起,延迟回复我似乎没有得到通知! – Jennet