gpt4 book ai didi

c# - 作为查询字符串附加的属性

转载 作者:太空宇宙 更新时间:2023-11-03 23:30:24 25 4
gpt4 key购买 nike

我试图拥有多个 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" 附加到 anchor 标记的查询字符串中,例如:

<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>

最佳答案

根据 MvcSiteMapProvider v3 documentation , attributesToIgnore应添加到 <siteMap>web.config .

<siteMap>
<providers>
<add name="MvcSiteMapProvider" type="MvcSiteMapProvider.DefaultSiteMapProvider, MvcSiteMapProvider"
siteMapFile="~/Mvc.Sitemap"
securityTrimmingEnabled="true"
cacheDuration="5"
enableLocalization="true"
scanAssembliesForSiteMapNodes="true"
excludeAssembliesForScan=""
includeAssembliesForScan=""
attributesToIgnore="hideOnStandard,hideFormatting"
nodeKeyGenerator="MvcSiteMapProvider.DefaultNodeKeyGenerator, MvcSiteMapProvider"
controllerTypeResolver="MvcSiteMapProvider.DefaultControllerTypeResolver, MvcSiteMapProvider"
actionMethodParameterResolver="MvcSiteMapProvider.DefaultActionMethodParameterResolver, MvcSiteMapProvider"
aclModule="MvcSiteMapProvider.DefaultAclModule, MvcSiteMapProvider"
routeMethod=""
siteMapNodeUrlResolver="MvcSiteMapProvider.DefaultSiteMapNodeUrlResolver, MvcSiteMapProvider"
siteMapNodeVisibilityProvider="MvcSiteMapProvider.DefaultSiteMapNodeVisibilityProvider, MvcSiteMapProvider"
siteMapProviderEventHandler="MvcSiteMapProvider.DefaultSiteMapProviderEventHandler, MvcSiteMapProvider" />
</providers>
</siteMap>

I believe in v3.x, you also had to ensure there is not a space after the comma or it won't match the attribute correctly.

使用:

attributesToIgnore="hideOnStandard,hideFormatting"

而不是:

attributesToIgnore="hideOnStandard, hideFormatting"

关于c# - 作为查询字符串附加的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32481111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com