При публикации данных в ASP. NET MVC с использованием ajax, данные равны нулю - PullRequest
0 голосов
/ 20 февраля 2020

При отладке MVCcontroller все свойства eventDetails равны нулю, хотя со стороны клиента свойства имеют значения

Ajax Call

  $.ajax({
            type: "POST",
            url: "/Home/schedule",
            data: {
                EventDetailsId: 1,
                Location: scheduleData.location,
                EventName: scheduleData.title

            },
            contentType: 'application/json',
            success: function (data) {
                alert(data);
            },
            error: function () {
                alert("Error occured!!")
            }
        });

EventDetails Class

    public class EventDetails
        {
            public int EventDetailsId{ get; set; }
            public string Location { get; set; }
            public string EventName { get; set; }
    }

Почтовый звонок

 [HttpPost]
    public JsonResult Schedule(EventDetails eventDetails)
    {
        return Json(new { status = true });
    }

enter image description here

enter image description here

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Если ваш ввод сложного типа, тогда сервер ожидает получить формат json и десериализовать его в соответствии с определенным типом объекта, в этом сценарии вы должны соответствовать ожиданиям сервера. Измените код javascript следующим образом:

var arr = {
    'EventDetailsId': 1,
    'Location': scheduleData.location,
    'EventName': scheduleData.title

};
$.ajax({
    type: "POST",
    url: "/Home/schedule",
    data: JSON.stringify(arr),
    contentType: 'application/json',
    success: function (data) {
        alert(data);
    },
    error: function () {
        alert("Error occured!!")
    }
});
0 голосов
/ 21 февраля 2020

Я добавил атрибут [FromBody], и значения не равны нулю.

 [HttpPost]
    public JsonResult Schedule( [FromBody]EventDetails eventDetails)
    {
        return Json(new { status = true });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...