2016-07-01 3 views
0

사용자가 링크를 클릭하고 탐색 할 수있는 외부 공급자의 콘텐츠 블록을로드하는 웹 사이트에 서비스가 있습니다.MVC에서 하위 경로를 구성하는 방법

내 경로는 요청 경로로 내 홈 컨트롤러를 호출하여 처리 할 수 ​​있어야합니다.

예를 들어, 탐색하는 데 사용하는 URL이

www../shop/hire/category/subcategory/subsubcategory/.... 

될 것입니다 그들은 특정 제품 이후 인 경우 :

www../shop/hire/category/subcategory/subsubcategory...?product=ABC 

점에서 상수는과 /shop/hire/이 될 것입니다 카테고리는 현재있는 위치를 기반으로 변경되며 제품은 실제로 무엇을 찾았습니까?

내가 가진 문제는 요청을 구문 분석하고 적절한 URL로 서비스를 호출 할 수 있도록 HomeController를 사용하는 대신 내 응용 프로그램에서 경로와 링크를 클릭 할 때 발생합니다.

routes.MapRoute(
     name: "Category", 
     url: "shop/hire/{categories}/{product}", 
     defaults: new { controller = "Home", action = "Index", categories = UrlParameter.Optional, product = UrlParameter.Optional } 
    ); 

을하지만이 영향을 갖고있는 것 같지 않습니다하십시오 (404)

나는 경로를 추가하는 시도했습니다.

+0

내가 다중 범주 아키텍처 당신 initialy 잘못이라고 생각 당신의 범주와 제품을 얻을 수있는 값을 구문 분석 할 수 있습니다를 사용해보십시오 예를 들어 매개 변수로 필요한 모든 범주를 전달해야합니다. –

+0

문제는 내 아키텍처가 아니라는 것입니다. 올바른 제품을 찾기 위해 그것을 사용하는 외부 제공 업체에 전화하고 있습니다. – Wizard

+0

[MVC 사용자 지정 라우팅의 여러 수준] 가능한 중복 (http://stackoverflow.com/questions/31934144/multiple-levels-in-mvc-custom-routing) – NightOwl888

답변

1

캐치 모든 경로

routes.MapRoute(
     name: "Category", 
     url: "shop/hire/{*categories}", 
     defaults: new { controller = "Home", action = "Index" } 
    ); 

하고 행동에 당신이

public ActionResult Index(string catagories) { ... } 
관련 문제