Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 视图在mvc 3中不断向我的控制器返回null_Jquery_Asp.net Mvc - Fatal编程技术网

Jquery 视图在mvc 3中不断向我的控制器返回null

Jquery 视图在mvc 3中不断向我的控制器返回null,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我正在尝试从视图向控制器发送数据。我有一个相当复杂的对象,它包含一个数组和一个带值的对象。无论我尝试什么,它在我的控制器中都是空的。我已经用IE9s F12检查了数据,数据就在那里。我不明白我做错了什么 视图中的代码: var deletedIds = []; $("#spara").click(function () { var changedInsertedData = $("#dagbok_grid").getChangedCells('all');

我正在尝试从视图向控制器发送数据。我有一个相当复杂的对象,它包含一个数组和一个带值的对象。无论我尝试什么,它在我的控制器中都是空的。我已经用IE9s F12检查了数据,数据就在那里。我不明白我做错了什么

视图中的代码:

    var deletedIds = [];

    $("#spara").click(function () {
        var changedInsertedData = $("#dagbok_grid").getChangedCells('all');
        var theData = { changedInserted: changedInsertedData, deleted: deletedIds };
        $.post('@Url.Action("SaveGridData")', JSON.stringify({ data: theData }), null, 'json');
    })
控制员:

    public void SaveGridData(DagbokGridDTO data)
    {
        System.Diagnostics.Debug.WriteLine(data.ToString());
    }
模型/DTOs

public class DagbokGridRadDTO
{
    public string Kronika { get; set; }
    public string Region { get; set; }
    public string id { get; set; }

}

public class DagbokGridDTO
{
    public DagbokGridRadDTO[] changedInserted;
    public string[] deleted;
}
来自IE9 F12模式的数据:


我认为它应该以这种方式工作,但在控制器中,data.changedinserred和data.deleted为null。我尝试了几种不同的方法,但没有任何帮助。

能否尝试在控制器中接收FormCollection并进行检查。在控制器中以<代码>形式[“changedInserted”]读取数据

public void SaveGridData(FormCollection form)
而不是:

$.post('@Url.Action("SaveGridData")', JSON.stringify({ data: theData }), null, 'json');
使用:

请注意,
$.ajax
方法如何允许您将请求内容类型头设置为
application/json
,这就是您要发送的内容。
$.post
方法不允许您设置此标题,模型绑定器无法理解您的请求

$.post('@Url.Action("SaveGridData")', JSON.stringify({ data: theData }), null, 'json');
$.ajax({
    url: '@Url.Action("SaveGridData")',
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify({ data: theData }),
    success: function(result) {

    }   
});