Получение IEnumerable из HttpPost - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь создать IEnumerable из запроса HttpPost.

JSON в теле выглядит следующим образом:

[{"id":15496,"order":0},{"id":15500,"order":1},{"id":15503,"order":2}]

Запрос на публикацию выглядит следующим образом:

    [HttpPost("[action]")]
    public IActionResult SendReorderRows([FromBody] IEnumerable<ReorderRow> rows){
         foreach(var row in rows){
             Debug.WriteLine(row.id);
         }
    }

Ссылочный класс здесь:

    public class ReorderRow
    {
        public int id;
        public int order;
    }

Однако, когда я запускаю этот пример, он дает мне

Ссылка на объект не установлена ​​на экземпляр объекта

ошибка для "строк".

У меня возникают трудности с поиском базового способа синтаксического анализа JSON и преобразования его в IEnumerable для использования в API.Я что-то упустил?

1 Ответ

0 голосов
/ 17 февраля 2019

Используйте вместо этого массив.

[HttpPost("[action]")]
public IActionResult SendReorderRows([FromBody] ReorderRow[] rows) {
     foreach(var row in rows){
         Debug.WriteLine(row.id);
     }
}

Он будет привязан к массиву JSON.

Вам также необходимы публичные свойства в объектной модели, чтобы они правильно заполнялись при привязке объектов.

public class ReorderRow {
    public int id { get; set; }
    public int order { get; set; }
}

Ссылка Привязка модели в ASP.NET Core: как работает привязка модели

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...