使用 Kendo 网格读取操作发布模型

Posting a model with Kendo Grid read action

我正在尝试将搜索表单添加到我的页面以更新 Kendo 网格。我应该如何发送 Ajax 调用,以便 ASP.NET MVC Model Binder 能够工作?

这是我的 Ajax 电话:

var grid = $("#SearchSheetHeads").data('kendoGrid');
var data = $("#SearchSheet").serialize();
grid.dataSource.transport.options.read.url = "@Url.Action("SearchHeaderRead", "Sheet")";
grid.dataSource.transport.options.read.data = data;
grid.dataSource.transport.options.read.dataType = 'json';
grid.dataSource.transport.options.read.contentType = "application/json";
grid.dataSource.transport.options.read.type = "POST";
grid.dataSource.fetch();

我也尝试过 stringify 方法并删除 contentType.

这是我的动作签名:

public ActionResult SearchHeaderRead([DataSourceRequest] DataSourceRequest request, SearchSheetHeaderViewModel model)

请求如下所示:

你能把第二行改成下面的样子试试吗

var data = $("#SearchSheetHeads").data('kendoGrid').dataSource.data();

目前无法测试,但可以尝试这样的操作:

var grid = $("#SearchSheetHeads").data('kendoGrid');
var data = $("#SearchSheet").serialize();
$.ajax(
{
    type: 'POST',
    url: '@Url.Action("SearchHeaderRead", "Sheet")',
    dataType: 'json',
    data: { model: data },
    success: function (result) {
        grid.dataSource.data(result.Data);
    }
});

data: { model: data } 可能对您来说是重要的部分。