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

85
24 марта 2022, 10:40

У меня есть действие в 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 в контролер?

Answer 1

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

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

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

body: JSON.stringify({description:"Lorem ipsum"})
READ ALSO
jsGrid изменить ячейку программно

jsGrid изменить ячейку программно

Как можно программно изменить значение ячейки jsGrid программно? Задача в следующем - сейчас данные таблицы обновляются по таймеру с помощью...

76
Слайдер в секции с остановкой прокрутки секции

Слайдер в секции с остановкой прокрутки секции

Подскажите как можно сделать подобный эффект слайдера когда в секции прекращается скролинг и не возобновляется пока все слайды не прокрученыВторая...

71
Умножение элементов массива друг с другом

Умножение элементов массива друг с другом

Нужно умножить первый элемент со вторым, третий с четвёртым а пятый с шестым

123
Цифры в конце вывода

Цифры в конце вывода

Скрипт отправляет запрос через AJAXи записывает результат в буфер обмена

111