Pass Array into ASP.NET Core Route Query String

Solution:

Delimited string is not the standard. Think also about the client if you support swagger or other generators.

For those who wonder about .net core 2.1 bug which receives an empty list, the work around is here: https://github.com/aspnet/Mvc/issues/7712#issuecomment-397003420

It needs a name parameter on FromQuery

[FromQuery(Name = "employeeNumbers")] List<string> employeeNumbers

Use a parameter name in the query string. If you have an action:

public void DoSomething(string[] values)

Then use values in the query string to pass an array to a server:

?values=this&values=that

I have found a solution. For example, if you have a query like this:

http://www.sitename.com/route?arr[]=this&arr[]=that

You must define in parameter as [FromQuery(Name = "arr[]")]. The name of parameter must include square brackets. As result we can see:

public void DoSomething([FromQuery(Name = "arr[]")] string[] arr)