Vin*_*ngh 4 c# jquery asp.net-mvc-4
目标:
我想将一个类型的对象传递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;
}
}
Run Code Online (Sandbox Code Playgroud)
我的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"); }
});
}
Run Code Online (Sandbox Code Playgroud)
我试过JSON.stringify,但仍然相同,也喜欢 var datatoPost = "{'request': '" + JSON.stringify(gridDatasource) + "', 'TotalRec': '" + 100 + "'}";
我需要在这里解析我的对象还是可以转换它的类型.
小智 9
对我来说,工作如下:
$("#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!");
}
);
}
});
Run Code Online (Sandbox Code Playgroud)