2012-02-24 2 views
3

MVC 4 프로젝트를 새로 만들고 MVC 3 프로젝트의 일부 영역을 복사했습니다. 모든 web.configs와 arearegistration.cs를 두 번 확인했습니다. 내 configs 모든 면도기와 MVC 및 routes.MapRoute 서명의 올바른 버전을 올바른 네임 스페이스 매개 변수를 포함하고, 또한 확인하고 내 IIS 풀이 하나 이상의 MVC 애플 리케이션을 호스팅하지 않았는지 확인했다. 내가 알고있는 모든 것을 확인했다ASP.Net MVC 4 - 'Home'컨트롤러와 일치하는 여러 유형이 발견되었습니다.

context.MapRoute(
      "Terminator_default", 
      "Terminator/{controller}/{action}/{id}", 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
      new string[] { "MVCProject.Web.Areas.Terminator.Controllers" } 
     ); 

내에서 Global.asax 파일 ...

routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults 
      new string[] { "MVCProject.Web.Controllers" } 
     ); 

내 영역 등록 파일 ...

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

및 ... 이 을 수정하려면 올바른 dll 영역도로드되었는지 확인하려면 ...

+0

당신은 사용자 정의 의존성/컨트롤러 리졸버를 사용하십니까? 사용자 정의 해석기 (예 : Windsor)를 구현하고 영역을 사용할 때는 특별한주의가 필요합니다. 또한이 질문을 참조하십시오 : http://stackoverflow.com/questions/5092589/having-issue-with-multiple-controllers-of-the-name-name-in-my-project –

+0

예 가능한 구조체 – JBeckton

+0

을 사용하고 있습니다. [ 'Home'이라는 컨트롤러와 일치하는 여러 유형이 발견되었습니다.] (http://stackoverflow.com/questions/7842293/multiple-types-were-found-that-match-the-controller-named-home) – bummi

답변

1

좋아 무슨 일이 일어 났는지 알았어. 다른 사람들에게 도움이되기를 바랍니다.

일반적으로 VS 2010에서 새 MVC 프로젝트를 만들 때 템플리트에서 네임 스페이스와 스터브 아웃 홈 컨트롤러 또는 두 개까지 얻을 수 있습니다. 내 MVC 응용 프로그램을 일반적인 레이어 (데이터, 모델 & 서비스)로 나눕니다. 각 레이어는 자체 프로젝트에 속합니다. 그런 다음 웹 프로젝트의 이름을 변경하여 .web을 프로젝트 이름과 이름 공간 "MyWebProject.Web"에 추가합니다.

템플릿은 웹 프로젝트의 이름을 바꾸기 전에 앱을 만들었고 나와 홈 컨트롤러를 스텁 아웃했습니다. 템플릿에 의해 생성 된 홈 컨트롤러는 MyWebProject.Controllers 네임 스페이스에 있고, routes.MapRoutes()는 MyWebProject.Web.Controllers를 매개 변수로 사용했습니다.

템플릿으로 만든 내 스텁 아웃 컨트롤러를 MyWebProject.Web.Controllers 네임 스페이스로 옮기면 문제가 해결되었습니다.

관련 문제