3

I have this Web API method:

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

I'm trying to call this via Ajax passing in an query string but I can't seem to get it to work. My Ajax call looks like this:

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

The method is called but it the int array does not get populated. What am I doing wrong?

2
  • 1
    It was a typo from me, I will edit in the question, I checked the code and there is a &. Commented Aug 23, 2018 at 14:22
  • Does this answer your question? Pass an array of integers to ASP.NET Web API? Commented Oct 25, 2020 at 20:17

1 Answer 1

10

Try add Name to [FromQuery], so the code should look like this:

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

and ajax url like this:

$.ajax({
    url: "/api/subjects/children?childrenIds=1&childrenIds=2&childrenIds=3",
    method: "GET",
    contentType: "application/json; charset=utf-8"
})
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.