【问题标题】:How can I control the class name rendered with use of MvcSiteMap().Menu()?如何控制使用 MvcSiteMap().Menu() 呈现的类名?
【发布时间】:2016-06-28 15:04:29
【问题描述】:

在使用 Nuget 包“MvcSitemapProvider Mvc5”时,当我只想显示整个站点地图的特定分支时,我学会了使用以下技术。

@Html.MvcSiteMap().Menu(new { name = "Mammals" });

虽然呈现了正确的内容,但不幸的站点效应是类名与呈现的列表一起定义。我称这很不幸,因为 Bootstrap 凭借 ID 和类名将其呈现为菜单。我希望它是一个简单的无样式列表。

我的问题是是否有一种方法可以覆盖它,以便我可以拥有没有任何 ID 或类名的无序列表——或者分配我选择的名称?

<ul id="menu" class="nav navbar-nav">
   <li>
   @* sitemap content... *@

【问题讨论】:

    标签: c# asp.net-mvc mvcsitemapprovider


    【解决方案1】:

    这是一种可能的方法,但我谨慎介绍它,因为它会更改现有的帮助程序。因为我不打算将 MVC Sitemap Provider 用于水平菜单,所以这将适合我的目的。

    我在Views &gt; Shared &gt; 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多