Как сделать MvcSitemapNode видимым только в Google Sitemap, но не в меню - PullRequest
3 голосов
/ 04 ноября 2011

Я хочу, чтобы некоторые некоторые узлы в моем Mvc.sitemap были видны только в Google Sitemap, нет необходимости отображать их в меню.

Есть ли способ, которым я могу этого достичь?

Вероятно, мне нужно как-то поиграть с атрибутом visibility

Есть мысли?

1 Ответ

2 голосов
/ 12 апреля 2012

Как описано в Расширенная видимость узла на вики-сайте GitHub, вы должны изменить провайдера видимости на FilteredSiteMapNodeVisibilityProvider и добавить «видимость» к attributeToIgnore:

<siteMap defaultProvider="MvcSiteMapProvider" enabled="true"> 
    <providers> 
        <clear /> 
        <add name="MvcSiteMapProvider" 
          type="MvcSiteMapProvider.DefaultSiteMapProvider, MvcSiteMapProvider" 
          ...
          attributesToIgnore="visibility" 
          ...
          siteMapNodeVisibilityProvider="MvcSiteMapProvider.FilteredSiteMapNodeVisibilityProvider, MvcSiteMapProvider"
        /> 
    </providers> 
</siteMap>

Когда это имеетсделано, вы должны добавить атрибут видимости ко всем узлам, которые вы хотите скрыть.Атрибут должен быть установлен на:

<mvcSiteMapNode title="Only in SiteMap" ... visibility="XmlSiteMapResult,!*" />
...