2011-04-06 5 views
1

이것은 지난 두 시간 동안 나를 미치게 만들었습니다. breadcrumb 기능을 추가하기 위해 MVC Sitemap Provider를 사용하고 있습니다.MVC 사이트 맵 공급자 유지 매개 변수

은 내 사이트 맵에 다음

  • 은 그때가 내가

    • 이 Nuget
    • 에서 리소스를 다운로드

      가능한이 명확 할 수 있습니다 제가 한 일의 단계를 통해 가자

      <?xml version="1.0" encoding="utf-8" ?> 
      

      <mvcSiteMapNode title="Vehicles" controller="Vehicles" area="Vehicles" action="Index"> 
          <mvcSiteMapNode title="VehicleName" controller="Vehicles" area="Vehicles" action="Showroom" > 
          <mvcSiteMapNode title="Overview" area="Vehicles" controller="Vehicles" action="Overview" /> 
          </mvcSiteMapNode> 
      </mvcSiteMapNode> 
      
      .

    • 그리고 나는 내보기

      @ Html.MvcSiteMap()에 SiteMapPath()

    • 나의 첫번째 질문

      는이있다 : I가 "VehicleName을"대신에 한 수있는 방법 액션 쇼룸, 내 실제 VehicleName?

    • 내 실제 문제는 다음과 같습니다. 내 ID가 부모에게 지속되지 않습니다. 예를 들어 내 URL은 localhost : 44357/Vehicles/Overview/Soul/1이고 부모 URL은 localhost : 44357/Vehicles/Showroom 대신 localhost : 44357/Vehicles/Showroom/Soul/1이됩니다. url의 vehiclename은 선택 사항이므로 URL은 localhost : 44357/Vehicles/Showroom/1 일 수 있습니다.

    나는 이것이 당신의 도움을 의미

    감사하게되기를 바랍니다.

  • 답변

    1

    질문 1 : 상위 노드에서 VehicleName을 설정하십시오. 예 : ((MvcSiteMapNode) SiteMap.CurrentNode.Parent) .RouteValues.Add ("VehicleName", "SomeVehicle") ;. 좋은 옵션은 사이트 맵 구조를 만들기 위해 동적 노드 공급자를 사용하는 것입니다.

    질문 2 : [SiteMapPreserveRouteData]가 트릭을 수행해야합니다.