2015-01-16 1 views
0

ASP.Net을 처음 사용합니다. 웹 API를 만드는 법을 배우기 시작했습니다. 아래는 Hello World 예제입니다. 저는 Visual Studio 2013을 사용하고 있습니다.WebApiConfig의 라우팅

다음은 제 컨트롤러 클래스입니다.

public class HW : ApiController 
{ 
    [HttpGet] 
    public string SayHello() 
    { 
     return "Hello World!"; 
    } 
} 

내 질문은 SayHello 메서드에 매핑되므로 어떻게 웹 요청을 라우팅합니까?

이 내가 현재 매핑

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

내가 오류로 "어떤 종류의 HW라는 이름의 컨트롤러를 일치 발견되지 않았다"는 무엇입니까에 대한 WebApiConfig.cs에 구성하고있는 무슨이다.

경로 주석을 사용하면 작동합니다.

[도로 ("API/HW/sayHello가")]

답변

0

MVC는 명명 규칙을 사용하여 작동한다. 이 규칙 중 하나는 제어기 이름이 제어기를 종료한다는 것입니다. 따라서 경로가 controller = "HW" 인 경우 HWController라는 컨트롤러가 필요합니다.

컨트롤러 이름을 HW에서 HWController로 변경하면 작동합니다.

+0

변경했습니다. HWController로 이름을 변경했습니다. 여전히 동일합니다. 내 webAPI 호출은 다음과 같습니다. http : // localhost : 52242/api/HWController/SayHello –