Не удается отправить коллекцию целых чисел в метод Post API Web Core, он имеет значение null
Я хочу отправить коллекцию целых чисел в метод post на web core api.
Метод такой;
[HttpPost("open")]
public IActionResult OpenInspections([FromBody]IEnumerable<int> inspectionIds)
{
return NoContent();
//...
Это просто для тестирования, я поставил точку останова на операторе return, и полезная нагрузка inspectionIds равна null.
В почтальоне у меня есть
EDIT: я только что удалил квадратные скобки из подписи. Я пробовал и IEnumerable<int>, и int[], но ни то, ни другое не сработало
2 ответа:
Он является нулевым, поскольку то, что разнесено и то, что ожидается действием, не совпадает, поэтому он не связывает модель при разнесении. Пример передаваемых данных имеет массив
string["11111111", "11111112"], а не массивint[11111111, 11111112],Также
IEnumerable<int>[]представляет собой набор коллекций, таких как{ "inspectionIds": [[11111111, 11111112], [11111111, 11111112]]}Чтобы получить желаемое поведение, либо обновите действие, чтобы ожидать желаемого типа данных
[HttpPost("open")] public IActionResult OpenInspections([FromBody]int[] inspectionIds) { //... }Убедившись, что опубликованное тело также соответствует тому, что есть ожидаемый
[11111111, 11111112]Или
Рассмотрим использование конкретной модели, поскольку размещенные данные в представленном вопросе являются объектом JSON .
public class Inspection { public int[] inspectionIds { get; set; } }И соответственно обновить действие
[HttpPost("open")] public IActionResult OpenInspections([FromBody]Inspection model) { int[] inspectionIds = model.inspectionIds; //... }Модель также должна соответствовать ожидаемым данным, которые будут опубликованы.
Обратите внимание, что если желаемые идентификаторы должны быть{ "inspectionIds": [11111111, 11111112] }int, то не заключайте их в кавычки.
