C# 将'Kendo.Mvc.UI.DataSourceRequest'类型的对象从jquery传递到Mvc操作
目标: 我想将类型为C# 将'Kendo.Mvc.UI.DataSourceRequest'类型的对象从jquery传递到Mvc操作,c#,jquery,asp.net-mvc-4,C#,Jquery,Asp.net Mvc 4,目标: 我想将类型为Kendo.Mvc.UI.DataSourceRequest的对象传递给Mvc操作,以便根据应用的排序和筛选从数据库中获得结果 问题/障碍: 当对象到达操作时,该对象将变为null 我的控制器动作 我的jquery函数 我尝试了JSON.stringify,但还是一样 也像var datatoPost=“{'request':'”+JSON.stringify(gridDatasource)+','TotalRec':'“+100+”}” 我是否需要在此处解析对象或转换其类型
Kendo.Mvc.UI.DataSourceRequest
的对象传递给Mvc操作,以便根据应用的排序和筛选从数据库中获得结果
问题/障碍:
当对象到达操作时,该对象将变为null
我的控制器动作
我的jquery函数
我尝试了JSON.stringify,但还是一样
也像var datatoPost=“{'request':'”+JSON.stringify(gridDatasource)+','TotalRec':'“+100+”}”代码>
我是否需要在此处解析对象或转换其类型。为我做了以下工作:
$("#excel").kendoButton({
click: function (event) {
var data = grid.dataSource._params();
var prepared = grid.dataSource.transport.parameterMap(data);
$.post("/Root/AnotherControllerMethod", prepared,
function (data, status, xhr) {
console.log("Ok!");
}
);
}
});
不确定这是否有帮助,但KendoUI包装器确实很有帮助,因为它们将所需的javascript呈现到页面上。您应该使用这些包装器库。查看本文中的演示,我也面临类似的问题。@spottedone提供的解决方案非常有效。
function getData() {
var gridDatasource = $('#gridname').data('kendoGrid').dataSource.options;
var datatoPost = "{'request': '" + JSON.stringify(new kendo.data.DataSource(gridDatasource)) + "', 'TotalRec': '" + 100 + "'}";
//new kendo.data.DataSource
$.ajax({
type: "Post",
url: '/Administrator/Getresults/',
contentType: "application/json; charset=utf-8",
data: datatoPost,
dataType: "json",
processdata: false,
success: function (value) {
alert(value.d);
},
error: function () { alert("Ajax Error"); }
});
}
$("#excel").kendoButton({
click: function (event) {
var data = grid.dataSource._params();
var prepared = grid.dataSource.transport.parameterMap(data);
$.post("/Root/AnotherControllerMethod", prepared,
function (data, status, xhr) {
console.log("Ok!");
}
);
}
});