gpt4 book ai didi

asp.net-mvc - MVCSiteMapProvider - 最近添加的关键字,现在它们正在填充到 MenuHelper 的链接中

转载 作者:行者123 更新时间:2023-12-03 03:20:46 25 4
gpt4 key购买 nike

我在 MVC3 站点中使用 MVCSiteMapProvider,最近我在 mvc.sitemap 中的节点中添加了元关键字和描述

< mvcSiteMapNode controller="Home" action="Index" title="Home" description="" keywords="home, home page, welcome" >

...例如。

然后我的 View 像这样填充它:

@{ string title = ""; string keywords = ""; string description = "";

  if (SiteMap.CurrentNode != null)
{
title = SiteMap.CurrentNode["title"];
keywords = SiteMap.CurrentNode["keywords"];
description = SiteMap.CurrentNode["description"];
}

}

< title>>@title< /title>>

< meta name="keywords" content="@keywords" / >

< meta name="description" content="@description" / >

在我使用的所有页面上:

@Html.MvcSiteMap().Menu(0, true, true, 1)

自从我开始将内容放入关键字部分后,菜单中的链接就会像这样填充:

< a href="/?keywords=home%20%2C%20Home%20Page%2C%20welcome" >Home< /a >

我不确定为什么会出现这个,我希望它不存在。大家有什么想法吗?

最佳答案

据我所知,这是一个未记录的 MvcSiteMapProvider 功能。节点上的所有未知属性都会作为 RouteValues 默认值插入。要忽略关键字属性,请在 web.config 中编辑站点地图设置并将“关键字”添加到 attributeToIgnore 中。如果您使用默认插入的配置,MvcSiteMapProvider 应该已经定义了attributesToIgnore。以下是添加到 attributeToIgnore 的关键字的默认设置:

<siteMap defaultProvider="MvcSiteMapProvider" enabled="true">
<providers>
<clear/>
<add name="MvcSiteMapProvider"
type="MvcSiteMapProvider.DefaultSiteMapProvider, MvcSiteMapProvider"
siteMapFile="~/Mvc.Sitemap"
securityTrimmingEnabled="true"
cacheDuration="5"
enableLocalization="true"
scanAssembliesForSiteMapNodes="true"
excludeAssembliesForScan=""
includeAssembliesForScan=""
<!-- Added keywords -->
attributesToIgnore="bling,visibility,keywords"
nodeKeyGenerator="MvcSiteMapProvider.DefaultNodeKeyGenerator, MvcSiteMapProvider"
controllerTypeResolver="MvcSiteMapProvider.DefaultControllerTypeResolver, MvcSiteMapProvider"
actionMethodParameterResolver="MvcSiteMapProvider.DefaultActionMethodParameterResolver, MvcSiteMapProvider"
aclModule="MvcSiteMapProvider.DefaultAclModule, MvcSiteMapProvider"
siteMapNodeUrlResolver="MvcSiteMapProvider.DefaultSiteMapNodeUrlResolver, MvcSiteMapProvider"
siteMapNodeVisibilityProvider="MvcSiteMapProvider.DefaultSiteMapNodeVisibilityProvider, MvcSiteMapProvider"
siteMapProviderEventHandler="MvcSiteMapProvider.DefaultSiteMapProviderEventHandler, MvcSiteMapProvider"/>
</providers>
</siteMap>

关于asp.net-mvc - MVCSiteMapProvider - 最近添加的关键字,现在它们正在填充到 MenuHelper 的链接中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10113948/

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