Javascript 发布具有剑道网格读取操作的模型
我正在尝试向我的页面添加一个更新剑道网格的搜索表单。如何发送Ajax调用,使ASP.NET MVC模型绑定器能够工作 这是我的Ajax调用: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
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
应为空数组并清除网格,这在我的测试应用程序中发生。