2013-10-09 5 views
10

나는 여기에 미쳐 가고 있습니다 ... 이것은 매우 간단한 작업처럼 보입니다. 우선, 웹 API와 MVC의 기초 만 알고 있습니다. 제발 나를 꼬치 지 말아주세요.ASP.NET 웹 API 컨트롤러 하위 폴더

프로젝트에서 필자는 논리적으로 컨트롤러 하위 폴더를 만들 필요가 있습니다 (조직 목적으로). 나는 생각만큼 간단하지 않은 느낌이 들었다. 다음과 같은 기본 경로가 있습니다.

config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

내 프로젝트의 컨트롤러 폴더에서 직접해야하는대로 작동합니다. 컨트롤러 폴더/컨트롤러에 하위 폴더를 추가했습니다. 나는 꽤 많이 검색했고 단지 해결책을 찾을 수 없다. 하위 폴더로 전달할 경로를 어떻게 추가 할 수 있습니까? 가 나는 시도했다 :

config.Routes.MapHttpRoute(
      name: "ReportingApi", 
      routeTemplate: "api/Reports/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 

과 :

config.Routes.MapHttpRoute(
      name: "ReportingApi", 
      routeTemplate: "api/Reports/{id}", 
      defaults: new { controller = "userunit" id = RouteParameter.Optional } 
+0

라우팅은 실제로 파일 시스템을 사용하지 않고 컨트롤러 작업으로 라우팅합니다. –

+0

하지만 컨트롤러가 하위 폴더에있는 경우 어떤 시점에서 경로를 제공해야합니까? 그것은 단지 그것을 찾지 않는가? –

+0

관습 적으로, 프레임 워크는'Controller' 폴더에서 컨트롤러를 찾았지만 그 이상으로는 경로를보고 있지 않습니다. 왜 모든 컨트롤러에 대해 하위 폴더를 만들어야합니까? 원하는 경우 라우팅을 사용하여 URL을 올바르게 가져올 수 있습니다. –

답변

3

신경 끄시 고 내가 바보 ... 나는의 기본 경로를 왼쪽 URL에서 "보고서"를 제거했습니다. 컨트롤러가 하위 폴더에 있음에도 불구하고 컨트롤러를 발견했습니다.

+0

나는 이것이 문제의 원인이 될 것이라고 생각합니다. 하위 폴더를 사용하기 때문에 서로 다른 네임 스페이스로 구분 된 두 개의 동일한 이름의 컨트롤러가있는 경우에는 어떻게됩니까? 이것은 WebApi 디자인의 단순한 감독입니다. – MoonStom