Отправка данных с помощью post ajax на контроллер asp.net MVC - PullRequest
0 голосов
/ 07 ноября 2018

Я пытался отправить данные из представления с помощью ajax (POST) на контроллер в формате JSON. Из console.log данные верны, но данные в контроллере отсутствуют ...

Вот контроллер:

[HttpPost]
public ActionResult SavePermission(TestData testData)
{
    return Json("DONE");
}

Вот модель:

namespace INTRANETv4.Models
{
    public class TestData
    {
        public string id { get; set; }
        public bool read { get; set; }
        public bool write { get; set; }
        public bool delete { get; set; }
    }
}

Вот функция JavaScript из представления:

function Save() { 
        var rows = document.getElementById("userTable").getElementsByTagName("tr");
        var output = [];
        for (i = 1; i < rows.length; i++) {
            output.push({
                id: rows[i].id,
                read: rows[i].getElementsByTagName("td")[2].getElementsByTagName("input")[0].checked,
                write: rows[i].getElementsByTagName("td")[3].getElementsByTagName("input")[0].checked,
                delete: rows[i].getElementsByTagName("td")[4].getElementsByTagName("input")[0].checked
            });
        }
        var myJSON = JSON.stringify(output);
        console.log(myJSON);

        $.ajax({
            type: "POST",
            contentType: "application/json",
            data: myJSON,
            url: "/Files/SavePermission",
            dataType: "json"
        });
}

Вот console.log myJSON:

enter image description here

А вот содержимое testData от контроллера при отладке:

enter image description here

Когда я использовал строку testData, потому что я беспокоился о преобразовании, строка была нулевой. Спасибо за любой совет.

1 Ответ

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

попробовать ваша модель меняется на List<TestData> testData

и изменение данных на JSON.stringify ({testData: output}),

$.ajax({
            type: "POST",
            contentType: "application/json",
            data:  JSON.stringify({ testData: output }),
            url: "/Files/SavePermission",
            dataType: "json"
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...