Как я могу получить доступ к данным из вызова AJAX, который отправляет данные JSON? - PullRequest
0 голосов
/ 29 сентября 2019

Я экспериментирую с вызовами ajax. То, что я делаю, передает список объектов в контроллер с помощью вызова ajax. Автоматическое связывание моделей работает нормально, но я пытаюсь получить строку json, считывающую вручную из входного потока, но мое решение не работает. Спасибо.

$(document).ready(function () {

    var data = [{ Data1: "data1", Data2: 1, Data3: 41 },
    { Data1: "data2", Data2: 12, Data3: 42 },
    { Data1: "data3", Data2: 13, Data3: 43 }
    ];

    $("#PassList").click(function () {
        $.ajax({
            contentType: "application/json; charset=utf-8",
            dataType: 'html',
            type: 'POST',
            url: '/Home/PassList',
            data: JSON.stringify(data) ,
            success: function (data) {
                alert("Success passing List");
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert("failure");
            }
        });
    });
});

    [HttpPost]
    public ActionResult PassList(List<SampleData> SampleDatas, string NewData)
    {
        System.IO.StreamReader sr = new System.IO.StreamReader(Request.InputStream);
        string line = "";
        line = sr.ReadToEnd();
        return View();
    }

1 Ответ

0 голосов
/ 30 сентября 2019

Связыватель модели по умолчанию работает правильно, потому что вы установили:

contentType: "application/json; charset=utf-8", в вашем вызове ajax.

Чтобы получить строку json, считываемую вручную из входного потока, прокомментируйте эти 2 строки в вашем ajax:

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

На стороне контроллера у вас будет:

public ActionResult PassList()
{
     System.IO.StreamReader sr = new System.IO.StreamReader(Request.InputStream);
     string line = "";
     line = sr.ReadToEnd();
     return View();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...