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 № 1Jak 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,!*" />