如何使MvcSitemapNode仅在谷歌站点地图中可见,但在菜单中不可见

时间:2011-11-04 09:39:18

标签: asp.net-mvc-3 mvcsitemapprovider

我想让我的Mvc.sitemap中的一些节点只在google sitemap中显示,不需要在菜单中显示它们。

有什么方法可以实现吗?

可能我需要以某种方式使用属性visibility

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如GitHub Wiki上的Advanced Node Visibility所述,您必须将可见性提供程序更改为FilteredSiteMapNodeVisibilityProvider并将“visibility”添加到attributesToIgnore:

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

完成此操作后,您必须将visibility属性添加到要隐藏的所有节点。该属性应设置为:

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