Я отправляю строковый объект на сервер, но когда сервер получает запрос, значение тела становится пустым
Это потому, что ваш клиент отправляет полезная нагрузка json, , пока сервер ожидает простая строка :
public JsonResult supervisors_name(<b>string aa</b>)
В результате строка aa
всегда равна null
.
Как исправить:
Вы можете отправить полезную нагрузку и связать параметр в формате JSON
, или вы также можете отправить и привязать полезную нагрузку как в *Формат 1024 *.Но не путайте их.
Подход 1 (в формате Json):
создайте фиктивный Payload
класс для хранения свойства aa
:
public class Payload {
public string Aa {get;set;}
}
И измените метод действия так, чтобы он принимал параметр Payload
:
[HttpPost]
public JsonResult supervisors_name2(<b>[FromBody]Payload</b> data)
{
// now you get the data.Aa
return Json (supervisors);
}
Не забудьте [FromBody]
, если вы используете контроллер не-API.
Подход 2(формат строки):
Если вы хотите получить тело json в виде простой строки, вам необходимо объявить [FromBody] string aa
:
[HttpPost]
public JsonResult supervisors_name(<b>[FromBody]string</b> aa)
{
// now you get the aa as string
return Json (supervisors);
}
Клиент должен отправить запрос сзаголовок Content-Type: application/json
.