Я могу получать данные от контроллера, но не могу отправить контроллеру из представления с помощью вызова AJAX. NET CORE - PullRequest
0 голосов
/ 19 июня 2020

Я хочу отправить идентификатор строкового типа из представления в контроллер, выполнить некоторые вычисления в соответствующем действии в контроллере и вернуть строку обратно в представление. Я могу получить returnData от контроллера, однако параметр действия «Строковые данные» всегда равен нулю. Это означает, что я не могу отправлять данные из представления в контроллер. Спасибо за вашу помощь.

Сторона обзора:

var data= "some string";

        $.ajax({

            type: "POST",
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify(data),
            url: "/Identities/Ajax",
            success: function (data) {
                alert("data: " + data);
            },
            error: function (result) {
                alert("error!!");
            }

        })

Сторона контроллера:

public JsonResult Ajax(String data)
    {
        var returnData= "some string";
        Console.WriteLine(data); // Always Null
        return Json(returnData);
    }

Ответы [ 2 ]

0 голосов
/ 20 июня 2020

Используйте атрибут FromBody для вашего параметра.

public ActionResult Ajax([FromBody]String data)

и укажите параметр в своей части jquery:

data: {data: JSON.stringify(data)},

0 голосов
/ 19 июня 2020

Сначала необходимо создать объект, а затем преобразовать объект в строку для передачи значения объекта контроллеру. Пример:

var data= "some string";

    $.ajax({

        var objParam = new Object();
        objParam.data = data;

        type: "POST",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(objParam),
        url: "/Identities/Ajax",
        success: function (data) {
            alert("data: " + data);
        },
        error: function (result) {
            alert("error!!");
        }

    })

Также вы должны изменить в своем контроллере

public ActionResult Ajax(String data)
    {
        var returnData= "some string";
        Console.WriteLine(data); // Always Null
        return Json(returnData);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...