要追加为查询字符串的属性

时间:2015-09-09 13:37:07

标签: c# asp.net-mvc mvcsitemapprovider

我正在尝试使用多个attributesToIgnore,因此我将其配置为:

attributesToIgnore="hideOnStandard, hideFormatting"

和我的Mvc.sitemap

  <mvcSiteMapNode title="Filters" controller="Parameterized">
    <mvcSiteMapNode title="Filters" controller="Parameterized" action="Index"/>
    <mvcSiteMapNode title="Output" controller="Parameterized" action="Output" preservedRouteParameters="id" hideOnStandard="true"/>
    <mvcSiteMapNode title="Formatting" controller="Parameterized" action="Formatting" preservedRouteParameters="id" hideFormatting="true" />
  </mvcSiteMapNode>

但是,它会将hideFormatting="true"附加到锚标记的查询字符串中,例如:

<a href="/Home/Reports/Formatting/29119?hideFormatting=true">Formatting</a>

我如何实际执行我想要做的事情?我试图以不同的方式划分attributesToIgnore,但除此之外,我不太确定如何解决它。我确实不想使用jQuery或其他东西来删除查询字符串。

修改

我如何知道要呈现的内容:

@model MvcSiteMapProvider.Web.Html.Models.MenuHelperModel
@using System.Web.Mvc.Html
@using MvcSiteMapProvider.Web.Html.Models

<ul class="navProgress">
    @foreach (var node in Model.Nodes)
    {
        if (!(node.MetaAttributes.Keys.Contains("hideOnStandard") && TempData["IsStandard"] != null && ((bool)TempData["IsStandard"])))
        {
            if (!(node.MetaAttributes.Keys.Contains("hideFormatting") && TempData["hideFormatting"] != null && ((bool)TempData["hideFormatting"])))
            {
                <li @(node.IsCurrentNode ? "class=active" : "")>
                    @Html.DisplayFor(m => node)
                @if (node.Children.Any())
                {
                    @Html.DisplayFor(m => node.Children)
                }
                </li>
            }
        }
    }
</ul>

0 个答案:

没有答案