문제

Webapi2로 놀고 이상한 문제를 가로 지르고 있습니다.

ihttpActionResult

를 사용하도록 기본 ValuesController를 업데이트했습니다.

처럼

    public class ValuesController : ApiController
{
    // GET api/values
    [HttpGet]
    public IHttpActionResult Get()
    {
        return Ok(new string[] { "value1", "value2" });
    }

    // GET api/values/get2
    [HttpGet]
    public IHttpActionResult Get2()
    {
        return Ok(new string[] { "value1", "value2" });
    }
.

POSTMAN 내에서 get ()을 듣고 시도하면 오류가 발생합니다

{ "메시지": "오류가 발생했습니다.", "exceptionMessage": "요청 : \ r \ nsystem.web.http.ihttpActionResult get () 유형 webApplication1.Controllers.ValueScontroller \ r \ nsystem.web.http.ihttpActionResult get2 () 유형 webApplication1 .controllers.ValuesController ", "exceptionType": "system.invalidoperationException", "StackTrace": "System.Web.http.Controllers.ActionSelectorCacheItem.ActionSelectorCacheItem.ActionSelectorCacheItem.ActionSelectorCacheItem.ActionSelectorCacheItem.ActionSaCtion (httpControllerText ControllerContext) \ r \nSystem.Web.http.Controllers.ApiControllerActionSelector.Apicontraction (httpControllerContext controlthercext) \ r \n시스템에서. web.http.apicontroller.executeasync (httpControllerContext ControllerContext, cancellerchoen cancellationToken) \ r \nsystem.web.http.dispatcher.httpcontrollerdispatcher.httpcontrollerdispatcher.sendasynccore (httprequestmessage 요청, cancellationToken cancellationToken) \ r \nsystem.web.http.dispatcher에서. httpControllerDispatcher.d__0.movenext () " }

이 항목을 작동시키려는 경로를 수동으로 만들어야합니까?

너무 간단하면서도 나에게 두통을 일으킨다!

도움이 되었습니까?

해결책

매개 변수가없는 두 개의 GET 요청이 있기 때문에 WebApi는 두 가지 간격을 차별화하는 방법이 없습니다.한 가지 방법은 당신이 말하는 것처럼 각 방법에 대해 다른 경로를 설정하는 것입니다.이 속성 라우팅 라이브러리를 사용하여 컨트롤러에서 다른 경로를 정의 할 수있는 라이브러리를 사용하는 것입니다.행동 수준은 정말로 이것을 정말로 좋아합니다 :

[RoutePrefix("api/values")]
public class ValuesController : ApiController
{   
    [GET("Get")]
    public IHttpActionResult Get()
    {
        return Ok(new string[] { "value1", "value2" });
    }

    [GET("Get2")]
    public IHttpActionResult Get2()
    {
        return Ok(new string[] { "value1", "value2" });
    }
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top