/ / Jak uczynić MvcSitemapNode widocznym tylko w mapie witryny Google, ale nie w menu - asp.net-mvc-3, mvcsitemap

Jak uczynić MvcSitemapNode widocznym tylko w mapie witryny Google, ale nie w menu - asp.net-mvc-3, mvcsitemap

Chcę, aby niektóre węzły w mojej Mvc.sitemap były widoczne tylko w Google Sitemap, nie ma potrzeby ich wyświetlania w menu.

Czy jest jakiś sposób, aby to osiągnąć?

Prawdopodobnie potrzebuję jakoś grać z atrybutem widoczność

jakieś pomysły?

Odpowiedzi:

2 dla odpowiedzi № 1

Jak opisano w Zaawansowana widoczność węzła na Wiki GitHub, musisz zmienić dostawcę widoczności na FilteredSiteMapNodeVisibilityProvider i dodać "visibility" do attributesToIgnore:

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

Kiedy to zrobisz, musisz dodać atrybut widoczności do wszystkich węzłów, które chcesz ukryć. Ten atrybut powinien być ustawiony na:

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