1

나는 SiteMapNode 주 대시 보드 SiteMapNode에 걸려 있습니다동일한 mvcSiteMapNode가 mvc.SiteMap의 다른 위치에 나타나는 경우 어떻게 올바른 빵 부스러기 흔적을 유지합니까?

<mvcSiteMapNode title="Dashboard" controller="DB" action="Index"> 
     <mvcSiteMapNode title="Company Users" controller="SGAccount" action="ListSOU" preservedRouteParameters="OrgId,caller"/> 

위의에 의해 생성 된 탐색 경로는 다음과 같습니다 "대시 보드> 회사 사용자"나는이 참조하고 싶어

"대시 보드> 너의 하위> 회사 사용자 "

<mvcSiteMapNode title="Dashboard" controller="DB" action="Index"> 

     <mvcSiteMapNode title="Your Sub" controller="SOU" action="ListSub"> 
     <mvcSiteMapNode title="Company Users" controller="SGAccount" action="ListSOU" preservedRouteParameters="OrgId,caller"/> 
    </mvcSiteMapNode> 

    </mvcSiteMapNode> 

나는 아직도 얻을 그러나"대시 보드> 회사 사용자 "

내가 의심 t는 여전히 첫 번째 SiteMapNode와 일치하는 패턴입니다.

정확한 SiteMapNode를 사용하고 올바른 BreadCrumb Trail을 생성하려면 어떻게해야합니까? 덧붙여 컨트롤러와 액션은 동일하므로 유용한 액션 속성이 얼마나 될지 잘 모르겠습니다.

감사합니다.

답변

3

사이트 맵의 기본 원칙은 각 노드가 고유해야한다는 것입니다. 따라서 일치 항목이 항상 첫 번째 노드가되기 때문에 2 개의 다른 위치에 1 개의 노드를 가질 수 없습니다.

그러나 동일한 리소스를 가리키는 2 개의 다른 노드를 만들 수 있습니다. 각각의 고유 한 경로 (및 고유 URL)가 있습니다. 당신은 당신의 행동에 도달하는 하나 이상의 경로가 존재 하는지를 확인하기 만하면됩니다. 그 여기하는 방법을 설명하는 문서가 : 또한 https://github.com/maartenba/MvcSiteMapProvider/wiki/Multiple-Navigation-Paths-to-a-Single-Page

가 존재 내 블로그에 동작하는 예제입니다 : 또 다른 쿼리 문자열 매개 변수를 사용하여 기본 경로를 사용 http://www.shiningtreasures.com/post/2013/08/10/mvcsitemapprovider-4-seo-features#canonical-tag

,하지만 당신은 또한 추가를 추가 할 수 있습니다 동일한 결과를 얻으려면 MVC 응용 프로그램에서 동일한 컨트롤러 작업으로 라우팅하십시오.

+0

THanks for this. 정말 감사합니다. URL 접근법에 어려움을 겪었습니다. 덜 강력 해 보였다. 특정 새 경로를 추가했을 때 훨씬 더 강력 해 보였습니다. 그러나 지금 내 관심사는 내가 뭔가를 놓치지 않았다면 약간의 비웃음이 될 수있는 특정 경로가 많이 필요할 것입니다. URL 접근 방식은 mvc.SiteMap 파일과 호출 하이퍼 링크를 편집하기 때문에 가장 단순 해 보입니다. 그래서 아마 조금 더 인내 !! 다시 한번 감사드립니다. – SamJolly

+0

경로를 영구적으로 추가 할 필요가없는 한 가지 옵션은 자신 만의 논리를 기반으로 라우트를 제공하는 고유 한 사용자 정의 라우트 클래스를 빌드하는 것입니다. https://github.com/NightOwl888/ComplexCommerce/blob/master/src/ComplexCommerce/ ComplexCommerce.Web.Mvc/Routing/ProductRoute.cs – NightOwl888

+0

안녕하세요, 이것이 부분적으로 작동하는 것 같습니다. 라우팅에는 문제가 없지만 탐색 경로는 노드의 첫 번째 항목을 선택합니다. –