У меня есть простой веб-api, но когда я тестирую его с помощью Postman, параметр метода равен нулю. Я просматривал и другие вопросы с похожим названием, но я не нашел ответа.web api: параметр действия null
Вот мой контроллер действия:
[HttpPost]
public Member Create([FromBody] string payload)
{
var s = Request.Content.ReadAsStringAsync();
if (payload == null)
{
throw new ArgumentNullException(nameof(payload));
}
Console.WriteLine(payload);
Console.WriteLine(s);
return null;
}
А вот моя конфигурация Почтальон:
На вкладке заголовков я добавил content-type
быть application/json
.
, когда я отладки это, переменная payload
всегда находится null
и строка s
содержит что-то вроде
Id = 98, Status = RanToCompletion, Method = "{null}", Result = ""
Так, что я делаю не так?
Что происходит, когда вы просто помещаете строку (без JSON) в тело? – Donal
Прочитайте это, и вы сделаете ошибку с привязкой параметров. [Связывание параметров в веб-интерфейсе ASP.NET] (https://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api) Другая ошибка заключается в том, что вы выводите задачу, а не результат задачи при попытке прочитать содержимое в виде строки – Nkosi
@Donal Если я помещаю простую строку, она работает. Но почему? –