0

사이트 맵이있는 부트 스트랩 템플리트를 사용하고 있습니다. 컨트롤러에서 Sitemap의 노드를 숨기는 방법. 다음은 My MvcSiteMap의 예입니다. 컨트롤러의 조건에 따라 샘플 페이지 노드를 숨기려고합니다.사용자 정의 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

가능한 복제 [ASP.NET MVC 사이트 맵 공급자 - 어떻게 실제 메뉴의 '숨기기'단일 항목 (https://stackoverflow.com/questions/12007065/asp -net-mvc-sitemap-provider-how-to-hide-single-items-in-the-actual-menu) – NightOwl888

답변

0

당신이 컨트롤러에 조건에 의해 숨길하려는 경우에만이 방법으로 그것을 달성 할 수, 당신은 아마 you'r는 컨트롤러에서 돌아 객체의 속성을 만들고해야 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