2012-09-17 3 views
1

마틴 데빌러의 tutorial을 사용하여 MVC4의 웹 API를 영역과 함께 사용하고 있습니다. 나는 정확히 지침을 따랐습니다 생각하지만, 액세스 할 때 GetControllerType는 다음과 같은 예외가 발생합니다 "에 http : // localhost를/API/사용자"WebApi 및 영역을 올바르게 재생하는 방법

Value cannot be null. Parameter name: controllerType 

사람이 원인이 될 수 무엇을 어떤 아이디어가 있습니까? 내 지역 등록 파일에 다음과 같이 입력했습니다 :

context.MapHttpRoute(
    name: "API_default", 
    routeTemplate: "API/{controller}/{id}", 
    defaults: new { id = RouteParameter.Optional } 
); 

미리 감사드립니다.

답변

2

지역이없는 응용 프로그램의 경로에 액세스하려하고 있습니다. 지역이 필요한가요?

예제를 따르려는 경우 Area 등록은 url을 "http : // localhost/administration/API/user"로 만듭니다. 이게 효과가 있니?

context.Routes.MapHttpRoute(
     name: "Administration_DefaultApi", 
     routeTemplate: "Administration/api/{controller}/{id}", 
     defaults: new { id = RouteParameter.Optional } 
    ); 
+0

API는 내 영역의 이름입니다. 그에 따라 경로를 어떻게 설정할 수 있습니까? – Jonathan

+0

API는 API 컨트롤러를 상속 한 모든 클래스의 기본적으로 영역 이름입니다./api/user에서 ApiController를 액세스 할 수 있도록 Area Registration으로 추가 작업을 할 필요가 없습니다. 그것은 바로 상자에서 똑같이 작동합니다. – Nick

+0

방금 ​​Area/API/Controllers에 UserController를 배치하려고 시도했지만 404가 발생했습니다. 오해가 있습니까? 지금까지 도와 줘서 고마워. – Jonathan