简体   繁体   English

使用 post ajax 将数据发送到 asp.net MVC 控制器

[英]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.我尝试将数据从带有 ajax (POST) 的视图以 JSON 格式发送到控制器。 From console.log, data is correct but data in controller missing...从 console.log,数据是正确的,但控制器中的数据丢失......

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:这是视图中的 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"
        });
}

Here is console.log of myJSON:这是 myJSON 的 console.log:

在此处输入图片说明

And here is content of testData from controller while debugging:这是调试时来自控制器的 testData 的内容:

在此处输入图片说明

When i used string testData, because i worried about to convert, string was null.当我使用字符串 testData 时,因为我担心转换,字符串为空。 Thank you for any advice.谢谢你的任何建议。

try you model change to List<TestData> testData尝试将模型更改为List<TestData> testData

and data change to JSON.stringify({ testData: output }),并将数据更改为 JSON.stringify({ testData: output }),

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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