Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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
Javascript 发布具有剑道网格读取操作的模型_Javascript_C#_.net_Kendo Ui_Kendo Asp.net Mvc - Fatal编程技术网

Javascript 发布具有剑道网格读取操作的模型

Javascript 发布具有剑道网格读取操作的模型,javascript,c#,.net,kendo-ui,kendo-asp.net-mvc,Javascript,C#,.net,Kendo Ui,Kendo Asp.net Mvc,我正在尝试向我的页面添加一个更新剑道网格的搜索表单。如何发送Ajax调用,使ASP.NET MVC模型绑定器能够工作 这是我的Ajax调用: var grid = $("#SearchSheetHeads").data('kendoGrid'); var data = $("#SearchSheet").serialize(); grid.dataSource.transport.options.read.url = "@Url.Action("SearchHeaderRead", "Sheet

我正在尝试向我的页面添加一个更新剑道网格的搜索表单。如何发送Ajax调用,使ASP.NET MVC模型绑定器能够工作

这是我的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 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);
    }
});

您能否更改下面给出的第二行并尝试一下

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}
可能是您的重要部分。

谢谢Amal,但我想发布我的表单,而不是我的网格。
SearchSheet
只是一个
,我对其他Ajax调用没有任何问题。我只是不知道如何让剑道网格正确地进行Ajax调用。是的,Vash,Ajax调用工作得很好。但是
grid.dataSource.data(result)
行给出了错误
对象不支持属性或方法“slice”
。至少当搜索结果为空时是这样。只是在我自己的一个网格上做了一个快速测试,我使用
grid.dataSource.data(result.data)
使它工作。请尝试一下。它修复了错误,但不会更新网格!目前我的搜索没有任何结果,所以应该清除网格。也许我只需要在那一行之前添加
grid.dataSource.data([])
。这样就行了。但是,如果您的控制器返回空集合,则
result.Data
应为空数组并清除网格,这在我的测试应用程序中发生。