简体   繁体   中英

Sending data with post ajax to asp.net MVC controller

I am tried sent a data from view with ajax (POST) to controller in JSON format. From console.log, data is correct but data in controller missing...

Here is controller:

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

Here is model:

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; }
    }
}

Here is javascript function from View:

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"
        });
}

Here is console.log of myJSON:

在此处输入图片说明

And here is content of testData from controller while debugging:

在此处输入图片说明

When i used string testData, because i worried about to convert, string was null. Thank you for any advice.

try you model change to List<TestData> testData

and data change to JSON.stringify({ testData: output }),

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM