0

我正在使用具有站點地圖的引導模板。如何從控制器隱藏站點地圖中的節點。 這裏是我的MvcSiteMap的例子。我想通過控制器中的條件來隱藏SamplePage節點。自定義隱藏側面圖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

的可能的複製[ASP.NET MVC網站地圖提供商 - 如何在實際的菜單中選擇「隱藏」單品(https://stackoverflow.com/questions/12007065/asp -net-mvc-sitemap-provider-how-to-hide-single-items-in-the-actual-menu) – NightOwl888

回答

0

如果要通過條件控制器隱藏它,你只能在這條路上實現它,你應該創建一個對象的屬性,找你從控制器回來,該propertly可能被打了個比方:

public static bool HideSamplePage {get; set;} 

什麼你可能在你的視圖做的是下一個(我希望你知道,剃刀代碼塊被封閉在@ {...})

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

在上面的代碼中,如果將屬性HideSamplePage的狀態設置爲true,則 然後<mvcSiteMapNode title="Sample Page" controller="Sample" action="Index" icon="fa fa-info">將不會被顯示/生成。

其他 顯示SamplePage

+0

如何在MvcSiteMapNode中創建條件?因爲該文件是在XML中? – santro