代码之家  ›  专栏  ›  技术社区  ›  g_b

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

  •  1
  • g_b  · 技术社区  · 7 年前

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

    我试图通过Ajax传递查询字符串来调用它,但似乎无法使其工作。我的Ajax调用如下:

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

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

    1 回复  |  直到 6 年前
        1
  •  6
  •   kml    7 年前

    Name [FromQuery] ,所以代码应该如下所示:

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

    ajax url如下:

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