私のWeb API
プロジェクトでは、私はAPIコントローラを持っています - ValuesController
。私は次のアクションを持っている値コントローラでWeb API Multiple get int [] not working
:
public IHttpActionResult Get()
{
var result = new string[] { "value1", "value2" };
return Json(result);
}
public IHttpActionResult Get(int id)
{
var data = new string[] { "value1", "value2" };
return Json(data);
}
アクションメソッド内のコードは単なるダミーです。 これらのアクションメソッドがヒットしていると私は、次のURLをしようとすると、正常に動作している: http://localhost:25901/api/values:私は、次のURLを打ったときに今
public IHttpActionResult Get([FromUri] int[] idList)
{
var data = new string[] { "value1", "value2" };
return Json(data);
}
: http://localhost:25901/api/values http://localhost:25901/api/values/1
は、今私は、次のアクションメソッドを追加します
{"Message":"An error has occurred.","ExceptionMessage":"Multiple actions were found that match the request: \r\nGet on type WebAPITryouts.Controllers.ValuesController\r\nGet on type WebAPITryouts.Controllers.ValuesController","ExceptionType":"System.InvalidOperationException","StackTrace":" at System.Web.Http.Controllers.ApiControllerActionSelector.ActionSelectorCacheItem.SelectAction(HttpControllerContext controllerContext)\r\n at System.Web.Http.Controllers.ApiControllerActionSelector.SelectAction(HttpControllerContext controllerContext)\r\n at System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()"}
WEBAPIの設定がFOの通りです: 私は次のエラーを取得しますllows:私はあなたがすべての値をフィルタリングするために、いくつかのIDを渡したい理解したよう
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("text/html"));
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}