2010-05-27 5 views
1

내 웹 사이트는 범주 및 하위 범주를 사용합니다. 나는 아래 사용하는 경우범주가 제공 될 때 라우팅에 실패 함

가 가/과일

/카테고리/과일/사과

는 그러나

/범주 :

routes.MapRoute( 
      "Category", // Route name 
      "Category/{category}/{subcategory}", // URL with parameters 
      new { controller = "Entity", action = "Category" } // Parameter defaults 
     ); 

를 내가 얻을

나는 다음과 매핑을하고 싶습니다 404 for/Category/Fruit 그러나 카테고리/Fruit/Apples는 정상적으로 작동합니다./Category/Fruit도 잘 작동하고 싶지만 같은 이름의 다른 경로를 추가 할 수는 없습니다. 이 문제를 어떻게 해결할 수 있습니까?

미리 감사드립니다.

답변

1

subcategory

routes.MapRoute( 
     "Category", // Route name 
     "Category/{category}/{subcategory}", // URL with parameters 
     new { controller = "Entity", action = "Category", subcategory = "Some value" } // Parameter defaults 
    ); 
+0

고마워요! – creativeincode

0

라우팅 규칙에 이름이 필요하지 않습니다. 이 값을 null로 설정할 수 있습니다.

두 번째 매개 변수를 선택 사항으로 표시하면 유일한 규칙으로 라우팅을 설명 할 수 있습니다. 또는 설정 두 번째 매개 변수의 디폴트 값은 : zerkms는

+0

>> " '당신이 경우에 응답 할 것입니다 일치하는 경로를 확인하기 위해 주소 표시 줄에 여러 URL을 입력 할 수 있습니다 두 번째 매개 변수를 선택 사항으로 표시 할 것 "- 기본값을 설정하지 않으면 어떻게 할 수 있습니까? – zerkms

+0

전문 용어 질문입니다 : secondParam = UrlParameter.Optional (PieterG 권고) –

0

필 Haack에 대한 기본 값을 지정 시사 자신의 블로그에 route debugger 있습니다.

이 유틸리티는 현재 요청의 요청에서 가져온 경로 데이터를 주소 표시 줄에 표시합니다. 그래서 당신은

0

이이 시나리오

routes.MapRoute(
    "Default", // Route name 
    "Category/{category}/{subcategory}/{id}", // URL with parameters 
    new { controller = "fruit", action = "apples", id = UrlParameter.Optional } // Parameter defaults 
); 

위해 작동하고 URL http://.../Category/Fruit/Apples/

관련 문제