0

Ich verwende eine Bootstrap-Vorlage, die Sitemap hat. So blenden Sie einen Knoten in der Sitemap von einem Controller aus Hier ist ein Beispiel für My MvcSiteMap. Ich möchte den SamplePage-Knoten durch eine Bedingung im Controller ausblenden.Custom Hide Sidemap MVC

<mvcSiteMapNode title="Home" clickable="false" icon="fa fa-home" visibility="SiteMapPathHelper,!"></mvcSiteMapNode> 
<mvcSiteMapNode title="Dashboard" controller="Dashboard" action="Index" icon="fa fa-dashboard"></mvcSiteMapNode> 
<mvcSiteMapNode title="Sample Page" controller="Sample" action="Index" icon="fa fa-info"> 
    <mvcSiteMapNode title="Master" clickable="false" icon="fa fa-info"></mvcSiteMapNode> 
</mvcSiteMapNode> 

+0

Mögliche Duplikat [ASP.NET MVC SiteMap-Provider - Wie zu 'verstecken' einzelne Elemente im aktuellen Menü] (https://stackoverflow.com/questions/12007065/asp -net-mvc-sitemap-provider-wie-verstecken-single-artikel-im-aktuellen-menü) – NightOwl888

Antwort

0

Wenn Sie es durch Bedingung in Ihrem Controller ausblenden möchten, können Sie es nur auf diese Weise erreichen könnte, sollten Sie wahrscheinlich eine Eigenschaft in Objekt erstellen, das you'r von einer Steuerung der Rückkehr und dass propertly könnte beispielsweise genannt werden:

public static bool HideSamplePage {get; set;} 

Und was Sie vielleicht auf Ihrer Ansicht tun, ist weiter (ich hoffe, Sie wissen, dass Razor Codeblöcke in @ eingeschlossen sind, {...})

@if(Model.HideSamplePage) 
{ 
<mvcSiteMapNode title="Home" clickable="false" icon="fa fa-home" visibility="SiteMapPathHelper,!"></mvcSiteMapNode> 
    <mvcSiteMapNode title="Dashboard" controller="Dashboard" action="Index" icon="fa fa-dashboard"></mvcSiteMapNode> 
    <mvcSiteMapNode title="Master" clickable="false" icon="fa fa-info"></mvcSiteMapNode> 
</mvcSiteMapNode> 
} 
else 
{ 
    <mvcSiteMapNode title="Home" clickable="false" icon="fa fa-home" visibility="SiteMapPathHelper,!"></mvcSiteMapNode> 
    <mvcSiteMapNode title="Dashboard" controller="Dashboard" action="Index" icon="fa fa-dashboard"></mvcSiteMapNode> 
    <mvcSiteMapNode title="Sample Page" controller="Sample" action="Index" icon="fa fa-info"> 
    <mvcSiteMapNode title="Master" clickable="false" icon="fa fa-info"></mvcSiteMapNode> 
</mvcSiteMapNode> 
} 

Im obigen Code habe ich gesagt, wenn der Zustand der Eigenschaft HideSamplePage auf True gesetzt ist, dann <mvcSiteMapNode title="Sample Page" controller="Sample" action="Index" icon="fa fa-info"> wird nicht angezeigt/generiert.

sonst zeigen SamplePage auch

+0

Wie kann ich Bedingung in MvcSiteMapNode machen? weil die Datei in XML ist? – santro