2014-04-07 8 views
3

많은 질문과 Stackoverflow에 대한이 특정 오류에 대한 게시물을 알고 있지만, 시도 할 것 같은데 문제가 해결되지 않습니다. MVC 5 여러 유형의 일치하는 컨트롤러

내가

그렇게

  • MyApp.UI.Areas.Admin 같은 지역에 이 계정 컨트롤러, 기본 컨트롤러 폴더에 하나, 다른이있는 MVC 5 웹 응용 프로그램을 가지고있다. Controllers.AccountController
  • MyApp.UI.Controllers.AccountController

내가 PCF360.UI.Controllers.AccountController 내부의 로그인 작업과 충돌하려고 이 Actionlink는

@Html.ActionLink("Log in", "Login", "Account", new { area = "" }, null) 

나는 '계정'라는 이름의 컨트롤러를 일치

여러 유형이 발견 된 다음과 같은 오류가 발생합니다. -> 관리 -> AdminAreaRegistration PCF360.UI.Areas.Admin.Controllers.AccountController PCF360.UI.Controllers.AccountController

내부 지역 : '계정'에 대한 요청은 다음과 일치하는 컨트롤러를 발견했다 > RouteConfig이

0123과 같은 -

가 나는지도 노선은 App_Start 내부에 너무

context.MapRoute(
       "Admin_default", 
       "Admin/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional }, 
       new[] { "MyApp.UI.Areas.Admin.Controllers" } 
      ); 

처럼 context.MapRoute 수정

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

왜이 오류가 발생하는지 알 수 있습니까?

도움 주셔서 감사합니다. RouteConfig에 네임 스페이스를 정의

답변

4

봅니다 :

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
    namespaces: new[] { "MyApp.UI.Controllers" } 
); 
2

나는 당신처럼 프로젝트에서 일했다.

context.MapRoute(
      "admin_default", 
      "admin/{controller}/{action}/{id}", 
      new { Controller="Home", action = "Index", id = UrlParameter.Optional } 
     ); 

그리고 내 RouteConfig은 다음과 같습니다 :

내 관리 지역 등록은

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
      namespaces: new[] { "MyApp.Areas.admin.Controllers" } 
     ); 

어쩌면이처럼 AdminAreaRegistration 및 RouteConfig를 구성, 문제를 해결할 수 있습니다.