目标:我想将类型为 Kendo.Mvc.UI.DataSourceRequest
的对象传递给 Mvc 操作,以便我可以根据应用的排序和过滤从数据库中获取结果。
问题/障碍:对象在到达操作时变为 null。
我的控制器操作
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!");
}
);
}
});