Частично заполненный объект кажется полностью нулевым в контроллере после ajax post - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь отправить частично заполненный объект моему контроллеру через сообщение Ajax.

var child =
{
    Property1: 1,
    Property2: 'test',
};
$.ajax({
    url: '/MyController/AddNewTest',
    type: 'POST',
    data: {"MyObject": child},
    success: function (data) {
    //Do stuff
    },
    error: function (data) {
    //Do stuff
    }
});

Контроллер:

[HttpPost]
public ActionResult AddNewTest(MyObject object)
{
//Do stuff
}

Объект:

У объекта MyObject есть много других свойств, но в этом случае мне нужны только Property1 и Property2 (подозреваю, что это может быть проблемой). Вместо того, чтобы отправлять две строки моему контроллеру, я бы предпочел пропустить этот частично заполненный объект, так как это немного облегчает мою жизнь в будущем.

Проблема в том, что, как только объект прибудет в мой контроллер, все внутри объекта пусто.

Ответы [ 2 ]

0 голосов
/ 19 марта 2020
        url: '/MyController/AddNewTest',
        type: 'POST',
        data: JSON.stringify(child),
        processData: false,
        contentType: "application/json",
        dataType: "json",
0 голосов
/ 19 марта 2020

Используйте ниже в $. ajax

contentType: 'application/json; charset=utf-8',

из-за отсутствия contentType , по умолчанию принимается

'application/x-www-form-urlencoded; charset=UTF-8'

Так, когда вы получаете в контроллере все внутри объекта пусто.

См .: https://api.jquery.com/jquery.ajax/

Или данные Else Pass как

$("#btnsubmit").click(function (e) {   
        //Serialize the form datas.   
        var valdata = $("#friendform").serialize();   
        //to get alert popup   
        alert(valdata);   
        $.ajax({   
            url: "/Friend/AddFriend",   
            type: "POST",   
            dataType: 'json',   
            contentType: 'application/x-www-form-urlencoded; charset=UTF-8',   
            data: valdata   
        });   
    }); 

для этого: https://www.c-sharpcorner.com/article/asp-net-mvc-jquery-ajax-form-submit-using-serialize-form-data-into-a-model/

Надеюсь, вы понимаете проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...