По стандартному маршруту:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
С помощью этих действий:
public class ValuesController : ApiController
{
// GET api/values
public string GetAll()
{
return "all";
}
// GET api/values/5
public string GetById(int id)
{
return "single";
}
// GET api/values?ids=1&ids=2
public string GetByIds([FromUri] int[] ids)
{
return "multiple";
}
И сделайте запрос к /api/values, я получаю это исключение:
Multiple actions were found that match the request:
System.String GetAll() on type MvcApplication4.Controllers.ValuesController
System.String GetByIds(Int32[]) on type MvcApplication4.Controllers.ValuesController
Я крутил свои колеса, пытаясь найти решение вокруг этого. Я считаю, что действия GetAll и GetByIds считаются здесь Несколько, но это не так, потому что у GetByIds другая подпись.
Есть ли обходной путь для этого, который не включает добавление {action}
к маршруту?