2012-07-13 5 views
0

I가 다음 URL매칭 노선

  1. URL/설명
  2. URL/홈/회원/설명
  3. URL/홈/설명
여기

내 경로는

위의 # 1 :

위 # 2의

:

routes.MapRoute(
       name: "DescriptionDefault", 
       url: "{controller}/{action}/{d}", 
       defaults: new {controller = "Home", action = "Index", d = UrlParameter.Optional} 
       ); 

나는 # 3 문제에 봉착했습니다.

은 내가
routes.MapRoute(
       name: "DescriptionDefaultNoAction", 
       url: "{controller}/{d}", 
       defaults: new { controller = "Home", action = "Index", d = UrlParameter.Optional } 
       ); 

을 할 수 있다고 생각하지만 이것은 무한 루프를 만듭니다. 기본적으로 홈 컨트롤러 및 인덱스 동작에 "home/description"을 매핑하는 # 3 예제가 필요합니다. 도와 주시면 감사하겠습니다!

답변

0

여기서 문제는 시나리오 3이 라우트 구성 2와 일치한다는 것입니다. 설명은 조치라고 생각하고 {d} 부분이 없습니다.

이 주변에있는 유일한 방법은 매우 구체적인 경로를 가지고, 당신은 시나리오 전에 시나리오 3에 대한 수용 할 필요 2.

혹시 추가해야 마지막 경로가 될 것이다 당신의 캐치가 전부이다이 하나, .

routes.MapRoute(
      name: "DescriptionDefault", 
      url: "{controller}/{action}/{d}", 
      defaults: new {controller = "Home", action = "Index", d = UrlParameter.Optional} 
      ); 

귀하의 질문에서 명확하지 않은 점은 URL의 설명 부분이 자리 표시 자인지 또는 리터럴 값인지 여부입니다. 리터럴 인 경우 경로 구성에서 해당 내용을 사용하십시오.