효율적인 경로 및 ASP.NET Siteemap 으로이 탐색 시나리오를 모델링하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2021911

문제

다음 시나리오를 모델링해야하지만 MVCSITEMAPPROVIDER로 작업 할 수는 없습니다 (내 문제도 기본 사이트 Approvider에 직접 매핑한다고 생각합니다). 기본 Breadcrumbs 컨트롤을 동적 데이터로 제대로 작동하도록하고 싶습니다.

목록이 있습니다 products 그룹화합니다 category 거기에는 a parent-category

  • 상위 카테고리
    • 범주
      • 제품

다음 URL을 사용할 수 있기를 원합니다.

(1) /제품
(2) /제품/메인 카테고리
(3) /제품/메인 카테고리/카테고리
(4) /제품/메인 카테고리/카테고리/제품

분명히 아래의 내 솔루션은 최적이 아닙니다.

그만큼 Products Sitemap의 노드에는 childnodes가 없으므로 메뉴에 표시되지 않습니다.

메인 카테고리와 카테고리를 추가하여 메뉴에 표시되는 중개 객체를 만들었습니다. 그러나 이것은 다른 컨트롤 (빵 부스러기)이 제가 /제품에 있다고 말하면서 문제를 해결하지 못합니다.

경로를 변경하거나 Siteemap 정의를 변경해야합니까? 아니면 다른 것이 있습니까?


나는 현재 다음과 같습니다.

  • 2 개의 경로
    1 /제품, /제품 /메인 카테고리 및 /제품 /메인 카테고리 /카테고리 -> ProductsController.Index ()에 매핑
    1/제품/메인 범주/카테고리/제품 -> ProductsController.product ()에 매핑
  • 1 Sitemap의 항목
    DynamicParameters 정의 (MainCategory; 범주).

Global.asax 경로 정의 :

    routes.MapRoute( _
        "Product", _
        "Products/{MainCategoryName}/{CategoryName}/{ProductName}", _
        New With {.controller = "Products", .action = "Product"} _
    )

    routes.MapRoute( _
        "Products", _
        "Products/{MainCategoryName}/{CategoryName}", _
        New With {.controller = "Products", .action = "Index", .GroupName = "", .CategoryName = ""} _
    )

내 사이트 맵에 다음 항목이 있습니다.

<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
  <mvcSiteMapNode controller="Home" action="Index" title="Home" description="Homepage">
    <mvcSiteMapNode controller="Products" action="Index" title="Products" description="" isDynamic="true" dynamicParameters="MainCategoryName;CategoryName" />
  </mvcSiteMapNode>
</siteMap>
도움이 되었습니까?

해결책

나는 현재 관습을 사용하고 있습니다 SiteMapProvider. 나는 또한 여전히 관련된 맞춤 경로를 유지하고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top