C# 作为查询字符串追加的属性
我正在尝试使用多个C# 作为查询字符串追加的属性,c#,asp.net-mvc,mvcsitemapprovider,C#,Asp.net Mvc,Mvcsitemapprovider,我正在尝试使用多个属性忽略,因此我将其配置为: attributesToIgnore="hideOnStandard, hideFormatting" 和我的Mvc.sitemap: <mvcSiteMapNode title="Filters" controller="Parameterized"> <mvcSiteMapNode title="Filters" controller="Parameterized" action="Index"/>
属性忽略,因此我将其配置为:
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>
我怎样才能真正完成我想做的事情?我试着用不同的方式来定义属性stoignore
,但除此之外,我不太确定还有什么其他办法。我真的不想使用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>
@model mvcsitemprovider.Web.Html.Models.MenuHelperModel
@使用System.Web.Mvc.Html
@使用MvcSiteMapProvider.Web.Html.Models
@foreach(Model.Nodes中的var节点)
{
if(!(node.MetaAttributes.Keys.Contains(“hideOnStandard”)&&TempData[“IsStandard”]!=null&&((bool)TempData[“IsStandard”]))
{
if(!(node.MetaAttributes.Keys.Contains(“hideformating”)&&TempData[“hideformating”]!=null&((bool)TempData[“hideformating”]))
{
-
@DisplayFor(m=>node)
@if(node.Children.Any())
{
@DisplayFor(m=>node.Children)
}
}
}
}
根据,属性忽略
应添加到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>
而不是:
attributesToIgnore="hideOnStandard, hideFormatting"
您在哪里配置要忽略的属性?在web.config
文件或DI模块中?@NightOwl888是的,web.config,很抱歉。如果您需要版本或其他任何信息,请告诉我。感谢您使用的是哪个版本的MvcSiteMapProvider
?MetaAttributes自v3.x以来一直不是SiteMapNode的有效属性。让我编辑我的问题,向您展示我们如何利用当前的属性忽略,并让我知道您的答案是否仍然正确。如果有人想知道sitemap部分应该准确放置在哪里:配置>系统.web>sitemap
attributesToIgnore="hideOnStandard,hideFormatting"
attributesToIgnore="hideOnStandard, hideFormatting"