c# - 将类型为 `Kendo.Mvc.UI.DataSourceRequest` 的对象从 jquery 传递到 Mvc Action

标签 c# jquery asp.net-mvc-4

目标: 我想将 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/

相关文章:

c# - Intellisense 窗口有输入字段,不占用空间

c# - 如何使用泛型开发适用于 double 和小数的代码

javascript - 字符串超过 maxJsonLength 且小于 250kb

jquery - 如何为两个 jquery ui 日期选择器设置语言

javascript - jQuery 隐藏和显示输入值

c# - 更新 PartialView mvc 4

jquery - MVC 4 BundleConfig 不创建脚本引用

asp.net - 如何将 ASP.Net MVC 4 应用程序放入源代码管理中?

c# - 整数列表中的查找模式

具有动态类型的 C# 接口(interface)/抽象类