2013-05-08 3 views
2

이 질문은 여러 번 전에 물어 보았습니다. 그러나 나는 다른 문제가 있습니다. webApi 컨트롤러에서 복수 GET 작업

Single controller with multiple GET methods in ASP.NET Web API

는 이미 위의 링크에 게시물에 제공하는 단계를 따라했습니다,하지만 내 API를 링크 API/서비스 이름/컨트롤러의 형식으로되어 있습니다.

그리고 게시물에 주어진 경로는 API/컨트롤러 형식입니다. 어느 누구도이 문제를 해결하는 데 도움을 줄 수 있습니까? 실제로 경로를 내 서비스의 정확한 이름으로 재사용했지만 사용하지 않았습니다.

답변

2

나는 api/controller/action으로 라우트를 작성하는 대신 솔루션을 얻었으므로 아래에 주어진 방법으로 작성했습니다. 나는 원래 게시물에 주어진 링크를 가리키는 링크 http://lonetechie.com/2013/03/04/fixing-multiple-actions-were-found-that-match-the-request-aspnet-webapi/에서 코드 블록을 얻었습니다.

config.Routes.MapHttpRoute("DefaultApiWithAction", "{controller}/{action}", new { action = "Get" }); 
config.Routes.MapHttpRoute("DefaultApi", "{controller}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" }); 
config.Routes.MapHttpRoute("DefaultApiGet", "{controller}", new { action = "Get" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) }); 
config.Routes.MapHttpRoute("DefaultApiPost", "{controller}", new { action = "Post" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) }); 
config.Routes.MapHttpRoute("DefaultApiPut", "{controller}", new { action = "Put" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Put) }); 
config.Routes.MapHttpRoute("DefaultApiDelete", "{controller}", new { action = "Delete" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Delete) }); 
관련 문제