2014-10-13 2 views
0

경로와 관련된 새로운 작업입니다.매개 변수가있는 경로 일치

일부 사용자는이 경로가 작동하지 않는다는 것을 알고 있습니다.

/파견/파리/Lixo = 페이지는

/파견? 지역 = 파리 & 부서 = Lixo // 작품을 찾을 수 없습니다.

Global.asax에 :

 routes.MapContentRoute(name: "customRoute", 
         url: "{region}/{department}", 
         defaults: new { 
    action = "index", 
    controller = "dispatch", 
    region = UrlParameter.Optional, 
    department = UrlParameter.Optional 
} 
         //,contentRootResolver: (s) => s.StartPage 
         ); 

DispatchController.cs

public ActionResult Index(DispatchPage currentPage, string region, string department) 
+1

EPiServer의 부분 라우팅, 특히 [뉴스 부분 라우팅] (http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-CMS/75/Routing/Partial-routing/Example)을 살펴 보는 것이 좋습니다. -of-News-partial-routing /) 예제입니다. EPiServer 솔루션에서이 작업을 수행하고 있으므로 표준 MVC 라우팅은 EPiServer 페이지 유형 컨트롤러로 컨트롤러를 완전히 만들지 않는 한 동일한 방식으로 작동하지 않습니다. 또한 EPiServer World 포럼에 질문을 게시하는 것이 좋습니다. 그러면 EPiServer 개발자에게 질문을 더 효과적으로 제공 할 수 있습니다. – cjsharp1

답변

2

경로는 지역 및 부서를 포함하는 주. URL은 컨트롤러가 있다고 가정하지 않습니다. 또한 기본 경로가 정의되어 있다고 가정합니다. 따라서 :

/dispatch/Paris/Lixo - 아무 것도 맞지 않습니다. {region}/{department}에는 컨트롤러가 없으므로 라우트 프로세서는 dispatchregionParisdepartment에 할당합니다. Luxo은 아무 것도 맞지 않으므로 전체 경로가 맞지 않습니다. 반면에 기본 경로는 Paris이 동작이라고 가정하므로 잘 맞지 않습니다.

/dispatch?region=Paris&department=Lixo - 기본적으로 동작이 설정된 기본 경로에 맞습니다. 쿼리 문자열 params는 매개 변수로 전달되는 것을 제외하고는 라우팅에서 어떤 역할도하지 않습니다.

는 이후 아마 무엇, 내 생각,이 경로는 :

url: "dispatch/{region}/{department}" 

이 첫 번째 URL이 잘 캡처합니다.

관련 문제