使用Nuget包" MvcSitemapProvider Mvc5"时,我想学会使用以下技术,只想显示整个站点地图的特定分支。
@Html.MvcSiteMap().Menu(new { name = "Mammals" });
虽然呈现了正确的内容,但不幸的网站效应是类名与渲染列表一起定义。我称之为不幸,因为Bootstrap凭借ID和类名称将其呈现为菜单。我希望它是一个简单的无样式列表。
我的问题是,是否有一种方法可以覆盖它,以便我可以拥有没有任何ID或类名的无序列表 - 或者可能指定我选择的名称?
<ul id="menu" class="nav navbar-nav">
<li>
@* sitemap content... *@
答案 0 :(得分:0)
这是一种可能的方法,但我谨慎介绍它,因为它改变了现有的帮助器。由于我不打算将MVC Sitemap Provider用于水平菜单,这符合我的目的。
我在Views > Shared > DisplayTemplates
中找到了文件“MenuHelperModel.cshtml”并进行了此更改:
@* This is the original. I took this out so it wouldn't be renderd as a menu. <ul id="menu" class="nav navbar-nav"> This is adapted so that I can show parts of the sitemap as plain lists and not as menus. *@ <ul> @foreach (var node in Model.Nodes) { <li> @Html.DisplayFor(m => node) @if (node.Children.Any()) { @Html.DisplayFor(m => node.Children) } </li> } </ul>