2012-10-02 3 views
0

내가 다른 하위 폴더에 같은 이름을 가진 두 개의 컨트롤러가 내 컨트롤러ASP.NET MVC2 라우팅 문제

  • 컨트롤러처럼 보이는
    • API를
      • UserController
    • 도움
      • UserCont 롤러

나는 사용자가 http://mysite/api/User/Index

을 요청할 때 내 첫 번째 컨트롤러에 액세스하려는 사용자가 http://mysite/help/User/Index

어떻게 세계에서 라우팅을 구성하는 요청할 때 내 두 번째 컨트롤러에 액세스 할 수 있습니다. asax 및 views 폴더의 모양은 어떻게됩니까?

?

  • 조회수
    • 사용자
      • API를
        • 지수
      • 도움
        • 지수

감사하고 감사합니다.

답변

1

당신은 공간 제약을 사용할 수

routes.MapRoute(
    "help", 
    "help/{controller}/{action}", 
    new { controller = "User", action = "Index" }, 
    new[] { "MvcApplication1.Controllers.help" } 
); 

routes.MapRoute(
    "api", 
    "api/{controller}/{action}", 
    new { controller = "User", action = "Index" }, 
    new[] { "MvcApplication1.Controllers.api" } 
); 

지금까지 당신의 조회수 우려에 대한 하위 폴더가있는 것으로,이 상자 밖으로 지원되지 않습니다. 이 작업을 수행하려면 custom view engine을 작성해야합니다.

그런데 Areas을 사용 해본 적이 있습니까? 그들은 당신의 시나리오에 더 잘 맞는 것처럼 보입니다. 그래서 당신은 2 개의 영역을 정의 할 것입니다 : helpapi 그리고 모두에 정의 된 UserController 있습니다.

+0

지역은 훌륭한 선택이었습니다. Darin for your help – hazem