Я играю с WebApi2 и сталкивался с нечетной проблемой.Несколько IHttpActionResults GET в одном провале ApiController
Я обновил по умолчанию ValuesController использовать IHttpActionResult
как
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" });
}
Когда я пытаюсь позвонить Get() в почтальона я получаю ошибку
{ "Сообщение": «Ошибка произошла.», «ExceptionMessage»: «Было найдено несколько действий, соответствующих запросу: \ r \ nSystem.Web.Http.IHttpActionResult Get() для типа WebAppl ication1.Controllers.ValuesController \ r \ nSystem.Web.Http.IHttpActionResult Get2() для типа WebApplication1.Controllers.ValuesController ", " ExceptionType ":" System.InvalidOperationException ", " StackTrace ":" на System.Web.Http .Controllers.ApiControllerActionSelector.ActionSelectorCacheItem.SelectAction (HttpControllerContext controllerContext) \ r \ n в System.Web.Http.Controllers.ApiControllerActionSelector.SelectAction (HttpControllerContext controllerContext) \ r \ n в System.Web.Http.ApiController.ExecuteAsync (HttpControllerContext controllerContext, CancellationToken cancelationToken) \ r \ n в System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncCore (запрос HttpRequestMessage, CancellationToken cancelationToken) \ r \ n в System.Web.Http.Dispatcher.HttpControllerDispatcher.d__0.MoveNext() " }
Нужно ли вручную создавать маршрут для каждого, чтобы это работало?
Что-то очень простое, но вызывающее у меня головную боль!
Просто FYI ... Web API 2 имеет атрибут маршрутизация построена и поэтому вам не требуется устанавливать сторонний пакет в будущем. –
Спасибо @judder за объяснение –