В настоящее время я работаю над проектом ASP.NET Core MVC и столкнулся с проблемой привязки коллекций из IFormCollection к массиву JSON.
В настоящее время у меня есть веб-приложение, которое передает данные из коллекции IFormCollection в другие микросервисы веб-API.
Итак, моя коллекция форм может выглядеть примерно так: псевдокод:
People[0].Name="Jon Skeet"&People[1].Name="SLaks"
Когда он публикуется на моем контроллере MVC как IFormCollection, он выглядит примерно так же, где ключи - «People [0] .Name», «People [1] .Name», а значения - «Jon Skeet». "и" SLaks ".
Это проблематично, потому что когда я в конечном итоге сериализуюсь в JSON, вместо того, чтобы получить это:
{ People: [ { Name: "Jon Skeet" }, { Name: "SLaks"} ] }
Вместо этого я получаю:
{ "People[0].Name": "Jon Skeet", "People[1].Name": "SLaks" }
Который не связывается с [FromBody]IEnumerable<Person> People
, когда я отправляю сообщение с моего контроллера MVC на контроллер моего микросервиса по очевидным причинам.
Итак, мой вопрос: как я могу заставить мою IFormCollection сериализоваться в JSON таким образом, чтобы индексированные коллекции сериализовались правильно в массив JSON? Есть ли какой-то специальный конвертер или что-то еще, что мне нужно реализовать, чтобы он работал?
Обратите внимание, что мой MVC-контроллер должен принимать IFormCollection, потому что он действует как универсальный контроллер, который направляет к нужному микросервису на основе URL-адреса запроса.