Korzystam z dostawcy ASPMNET MVC SiteMap w projekcie i działa świetnie. Mam trudny czas, próbując dowiedzieć się, jak ukryć pozycję w menu. Element menu, który chcę ukryć przed wyświetleniem w nawigacji globalnej, to moja strona "Mapa strony". Teraz wiem, że coś jest nazywane VisibilityProvider
dostępnym na mvcSiteMapNode - ale nie mogę wymyślić, jak to zrobić.ASP.NET MVC SiteMap provider - jak "ukryć" pojedyncze elementy w aktualnym menu
Odpowiedz
Po pierwsze, proponuję przeczytać tę stronę wiki: Creating a Custom SiteMapNodeVisibilityProvider. Wtedy dla danego węzła, który wskazuje na swojej stronie Mapa strony, zadeklarować to w ten sposób:
<mvcSiteMapNode title="Site Map" controller="Home" action="Map" visibility="false" />
Teraz, przy realizacji sposobu IsVisible
(pokazany na stronie wiki powiązany powyżej), można to zrobić:
string visibility = mvcNode["visibility"];
// Is a visibility attribute specified?
if (!string.IsNullOrEmpty(visibility))
{
isVisible = Convert.ToBoolean(mvcNode["visibility"]);
if (!isVisible)
{
return false;
}
}
return true;
Z mojej odpowiedzi tutaj wyjaśniono, jak ukryć węzły i dostępne opcje.
https://stackoverflow.com/a/27095721/853295
Należy skorzystać z tej instrukcji, w jaki sposób ukryć węzeł
Niektóre ustawienia można ustawić z linku powyżej:
<appSettings>
<!-- Visibility will not filter to children -->
<add key="MvcSiteMapProvider_VisibilityAffectsDescendants" value="false"/>
<!-- Set default visibility provider -->
<add key="MvcSiteMapProvider_DefaultSiteMapNodeVisibiltyProvider" value="MvcSiteMapProvider.FilteredSiteMapNodeVisibilityProvider, MvcSiteMapProvider"/>
</appSettings>
Po dodaniu ustawienia aplikacji, dodaj następujące elementy do dowolnego węzła, który chcesz wyświetlić w menu nawigacyjnym, ale nie menu:
visibility="SiteMapPathHelper,!*"
(SiteMapPathHelper - węzeł jest widoczny w SiteMapPath, * - jest to niewidoczne dla wszystkich innych kontroli!)
np: dostępny
<mvcSiteMapNode title="Administration" area="Admin" clickable="false" visibility="SiteMapPathHelper,!*" />
Inne opcje:
Rodzaj .......................... Co wpływa na
CanonicalHelper ....... The Canonical HTML Helper
MenuHelper .............. Menu HTML Helper
MetaRobotsHelper .... Pomocnik HTML Meta Robots
SiteMapHelper .......... Helper mapy witryny
SiteMapPathHelper ... The SiteMapPath HTML Helper
SiteMapTitleHelper ... pomocnika Tytuł HTML
XmlSiteMapResult .... wyjście XML Sitemaps punktu końcowego /sitemap.xml
- 1. jQuery Menu i ASP.NET Sitemap
- 2. System dynamicznego menu Asp.net MVC
- 3. Jak korzystać SimpleMemberShip Provider w Asp.net MVC 4 Zastosowanie
- 4. ASP.NET MVC: Jak ukryć ActionResult na ciąg?
- 5. Wybrane menu ASP.NET MVC Pozycja
- 6. Menu nawigacji z podświetleniem w Asp.NET MVC?
- 7. Pojedyncze logowanie w asp.net
- 8. Utwórz menu z pliku web.sitemap w ASP.NET
- 9. Menu kontekstowe jquery wyłącz elementy menu
- 10. Obszary ASP.NET MVC: jak ukryć nazwę obszaru w adresie URL?
- 11. ASP.NET MVC - menu dla różnych ról
- 12. asp.net bazie MVC napędzany menu nawigacji
- 13. Jak grupować elementy listy HTML w widoku ASP.NET MVC?
- 14. Jak ukryć elementy tablicy rekordów w Numpy?
- 15. Jak ukryć elementy w układzie graficznym?
- 16. Jak wyrównać elementy menu poziomo
- 17. ASP.Net MVC Ukryj/pokaż pozycje menu oparte na zabezpieczeniach
- 18. Jak ukryć menu/pasek narzędzi gvim?
- 19. Jak ukryć paski menu WPF DocumentViewer?
- 20. Jak ukryć moje menu dla nieuwierzytelnionych użytkowników?
- 21. Jak wyłączyć elementy menu w ContextMenuStrip?
- 22. Jak ukryć animowane elementy podczas ładowania?
- 23. Skopiuj pojedyncze elementy szybciej niż cała struktura?
- 24. Dodawanie atrybutów niestandardowych do mapy ASP.NET MVC
- 25. Dynamiczna mapa strony w ASP.NET MVC
- 26. Nie można rzutować działania Provider udostępnianie działania Provider
- 27. Jak ukryć podmenu w QMenu
- 28. Android Zmień elementy menu szuflady w menu Programowo programowo
- 29. get_absolute_url - Django`s sitemap
- 30. Pojedyncze kliknięcie, aby otworzyć menu ikony zasobnika w języku C#
to jest najprostszym rozwiązaniem, ponieważ to robi nie wymaga dodatkowego kodu. –