Как разместить данные Json на контроллере без модели в ядре .net - PullRequest
0 голосов
/ 21 ноября 2018

В сетке хранятся огромные данные, полученные из SQL-запроса, объединенного не только в таблице.Тип данных Json.Я отфильтровал данные и затем хочу отправить отфильтрованные данные на контроллер.Но как это может быть?Вот тестовые данные json в блоке javascript:

var jsonData = {
    "FirstName": "John",
    "LastName": "Doe",
    "DoB": "01/01/1970" };

И это моя функция javascript:

function submitForm() {
    var user = jsonData;

    jQuery.ajax({
        type: "POST",
        url: "@Url.Action("GetJsonData", "Account")",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(user),
        success: function (data) { alert(data); },
        failure: function (errMsg) {
            alert(errMsg);
        }
    });
}

Как получить данные Json в контроллере?Вот мой метод [HttpPost]:

    [HttpPost]
    public IActionResult GetJsonData(String user)
    {
        //...
        return null;
    }

пользователь получает значение NULL. Должен ли я изменить тип "String" в методе или что-то еще?

1 Ответ

0 голосов
/ 21 ноября 2018

Поскольку user является строкой, вы можете попытаться создать объект со свойством user:

jQuery.ajax({
    type: "POST",
    url: "@Url.Action("GetJsonData", "Account")",
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    data: { 
        user: JSON.stringify(user) 
    },
    success: function (data) { alert(data); },
    failure: function (errMsg) {
        alert(errMsg);
    }
});

Или с помощью FormData:

var formData = new FormData();
formData.append('user', JSON.stringify(user));

jQuery.ajax({
    type: "POST",
    url: "@Url.Action("GetJsonData", "Account")",
    contentType: false,
    processData: false,
    data: formData,
    success: function (data) { alert(data); },
    failure: function (errMsg) {
        alert(errMsg);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...