如何在ASP.NET Core Web API中传递int数组

g_b*_*g_b 2 c# asp.net-core asp.net-core-webapi

我有这个Web API方法:

[Route("api/[controller]")]
[ApiController]
public class SubjectsController : ControllerBase
{
    [HttpGet("children")]
    public IActionResult GetAllFromChildren([FromQuery]int[] childrenIds)
    {
        // omitted for brevity
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图通过传递查询字符串的Ajax来调用它,但似乎无法正常工作。我的Ajax呼叫看起来像这样:

$.ajax({
    url: "/api/subjects/children?childrenIds=1&childrenIds=2&childrenIds=3",
    method: "GET",
    contentType: "application/json; charset=utf-8"
})
Run Code Online (Sandbox Code Playgroud)

该方法被调用,但是不会填充int数组。我究竟做错了什么?

kml*_*kml 5

尝试添加Name[FromQuery],因此代码应如下所示:

[Route("api/[controller]")]
[ApiController]
public class SubjectsController : ControllerBase
{
    [HttpGet("children")]
    public IActionResult GetAllFromChildren([FromQuery(Name="childrenIds")]int[] childrenIds)
    {
        // omitted for brevity
    }
}
Run Code Online (Sandbox Code Playgroud)

和这样的ajax网址:

$.ajax({
    url: "/api/subjects/children?childrenIds=1&childrenIds=2&childrenIds=3",
    method: "GET",
    contentType: "application/json; charset=utf-8"
})
Run Code Online (Sandbox Code Playgroud)