Не передается текст в действие котролера

У меня есть действие в API-контролере

[HttpPost]
public async Task<bool> Create(string description)
{
  if (description != null) return true;
  else return false;
}

И есть JS-код

async function createPost() {
  let response = await fetch(
    `http://localhost:53060/api/post/`, {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify("Lorem ipsum")
  });

  console.log(await response.text());
}

createPost();

Я проверил через отладку - действие в контролере вызывается, но в него не передается параметр description и он равен null. Как передать через Fetch description в контролер?


Ответы (2 шт):

Автор решения: Igor

Оно же не знает, что текст, который Вы туда передаете, называется "description".

body: JSON.stringify({description:"Lorem ipsum"})
→ Ссылка
Автор решения: sombik

Пре передаче в методах текста в Body необходимо им об этом указывать. Контроллер думает, что Вы передаете текст в uri (строке параметров) по умолчанию. Поэтому укажите вот так:

[HttpPost]
public async Task<bool> Create([FromBody]string description)
{
  if (description != null) return true;
  else return false;
}
→ Ссылка