Я пытаюсь определить Действие контроллера в ASP.NET Core 2.2.
Сложность в том, что я предпочитаю, чтобы это была конечная точка GET , а данные, которые она должна получить, - это коллекция пользовательских объектов . Вот мой пример кода:
[Route("api/example")]
[ApiController]
public class ExampleController : ControllerBase
{
[HttpGet("getData")]
[ProducesResponseType(typeof(int), StatusCodes.Status200OK)]
public async Task<IActionResult> GetMarketData([FromQuery] MyObject[] queryData)
{
return this.Ok(0);
}
}
public class MyObject
{
public int A { get; set; }
public int B { get; set; }
}
Я ожидаю, что это будет связано с чем-то вроде
http://localhost/api/example/getData/?queryData=[A=1,B=1],queryData=[A=2,B=2]
Однако я не могу заставить его работать.
(отправка запроса на URL, не анализирует объекты, и я получаю пустой массив в моем контроллере)
Я не уверен, что это лучший способ подойти к этому, и, возможно, мне нужно изменить место, откуда я связываю данные?
Единственное, что меня волнует, - это возможность получить массив (или некоторую коллекцию ) MyObject , который я могу обработать и вернуть ответ. Я также предпочел бы, чтобы это был GET запрос, поскольку, в конце концов, я пытаюсь запросить этот API и получить от него данные.
Я знаю, что могу заставить его работать с использованием атрибута [FromBody] , но, насколько я знаю, GET-запросы не должны использовать тело .
Любая помощь приветствуется.