目标:
我想将 Kendo.Mvc.UI.DataSourceRequest
类型的对象传递给 Mvc 操作,以便我可以根据应用的排序和过滤从数据库中获取结果。
问题/障碍: 对象在到达操作时变为 null。
我的 Controller 操作
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!");
}
);
}
});
关于c# - 将类型为 `Kendo.Mvc.UI.DataSourceRequest` 的对象从 jquery 传递到 Mvc Action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18779078/