0

我有一个启用了排序功能的剑道网格。我想使用 jQuery 进行 ajax 回发,将排序信息发送到操作方法以执行某些操作。

var datasource = $(".data-table").data("kendoGrid").dataSource;
$.ajax({
    type: 'POST',
    url: '@Url.Action("ExportToPDf", "MyController")',
    dataType: 'json',
    data: { sort: datasource._sort } 
});

我可以看到debugger正确的值被获取并传入了 ajax 的 data 属性。我使用 FireBug 确认在 POST 操作期间传递了这些值。

public ActionResult ExportToPDf(List<SortDescription> sort)
{
    //Will be doing some action
    return null;
}

public class SortDescription
{   
    public string dir { get; set; }
    public string field { get; set; }
}

POST 操作期间来自 Firebug 的示例数据

sort[0][dir]    asc
sort[0][field]  EmployeeRef

当我在操作方法中保留断点时,我能够在列表中获取一项,但属性似乎为空。

谁能指导我做错了什么?

4

1 回答 1

2

尝试这样的事情:

$.ajax({
    url: '@Url.Action("ExportToPDf", "MyController")',
    type: 'POST',
    dataType: 'json',
    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify({sort: datasource._sort })
 })
于 2012-12-18T14:38:50.217 回答