Это кажется немного странным способом передачи этих данных (почему бы не один длинный список всех объектов одного типа?). Сказав это, вы сначала должны исправить свой атрибут. Атрибут «[FromQuery]» из класса «FromQueryAttribute». Вы не включаете часть «Атрибут» в фактическое использование атрибутов.
Итак, контроллер:
[HttpGet]
public IActionResult Get([FromQuery] List<MyObject> obj1, [FromQuery] List<MyObject> obj2) {}
Затем вам нужно сформировать параметры строки запроса, чтобы они действительно соответствовали эта структура. Строка запроса будет выглядеть примерно так:
https://localhost:44315/api/test?obj1[0].Prop1=1&obj1[0].Prop2=2&obj2[0].Prop1=3&obj2[0].Prop2=4
Это приведет к созданию объекта параметра obj1 в методе Get с одним элементом в списке, и этот первый элемент (нулевой индекс) имеет значение Prop1, равное 1, и значение a Значение Prop2, равное 2. Также будет создан элемент obj2, один элемент в списке, значение Prop1, равное 3, и значение Prop2, равное 4.
Если вы хотите, чтобы obj1 имел второй элемент в списке, то индекс становится равным 1, и вы добавляете это в строку запроса:
...&obj1[1].Prop1=5&obj1[1].Prop2=6
Я проверил это на ASP. Net CORE 3.1 API, и он работал нормально.