将`Kendo.Mvc.UI.DataSourceRequest`类型的对象从jquery传递给Mvc Action

目标:我想将一个类型为Kendo.Mvc.UI.DataSourceRequest的对象Kendo.Mvc.UI.DataSourceRequest给Mvc操作,这样我就可以根据应用的排序和过滤从数据库中获取结果。

问题/障碍:当对象到达动作时,该对象变为空。

我的控制器行动

  public ActionResult Getresults([DataSourceRequest]DataSourceRequest request, Int32 TotalRec) { try { //get data from DAL var result = new DataSourceResult() { Data = List, // Process data (paging and sorting applied) Total = TotalRec }; return Json(result, JsonRequestBehavior.AllowGet); } catch (Exception ex) { throw ex; } } 

我的jquery函数

 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"); } }); } 

我尝试过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!"); } ); } });