0

J'utilise un modèle de bootstrap qui a un sitemap. Comment cacher un nœud dans Sitemap à partir d'un contrôleur. Voici un exemple de My MvcSiteMap. Je veux cacher SamplePage Node par une condition dans le contrôleur.Personnaliser Cacher 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

double possible de [ASP.NET MVC fournisseur SiteMap - Comment articles simples 'cacher' dans le menu réel] (https://stackoverflow.com/questions/12007065/asp -net-mvc-sitemap-provider-comment-masquer-single-items-dans-le-menu-réel) – NightOwl888

Répondre

0

Si vous voulez le cacher par condition dans votre contrôleur, vous pourriez réaliser que sur cette façon, vous devriez probablement créer une propriété dans l'objet que you'r retour d'un contrôleur, et qui pourrait propertly appeler par exemple:

public static bool HideSamplePage {get; set;} 

Et ce que vous pourriez faire sur votre vue est à côté (je l'espère, vous savez que les blocs de code Razor sont enfermés dans @ {...})

@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> 
} 

Dans le code ci-dessus j'ai dit que si l'état de la propriété HideSamplePage est défini sur true, alors <mvcSiteMapNode title="Sample Page" controller="Sample" action="Index" icon="fa fa-info"> ne sera pas affiché/généré.

autre montrent SamplePage aussi

+0

Comment faire une condition dans MvcSiteMapNode ?? parce que le fichier est en XML? – santro