【问题标题】:Send DataSourceRequest object from a JavaScript function to a MVC Controller end-point将 DataSourceRequest 对象从 JavaScript 函数发送到 MVC 控制器端点
【发布时间】:2014-08-27 14:09:45
【问题描述】:

我想将 JavaScript 函数中的 DataSourceRequest 对象发送到 MVC 控制器端点,该端点根据应用于网格数据源的过滤器过滤 IQueryable,然后将结果数据导出到 excel 中。

这就是我在我的 javascript 上所做的:

exportData = function () {

        var grid = $("#QuoteGrid").data("kendoGrid");
        var parameterMap = grid.dataSource.transport.parameterMap;
        var sortData = grid.dataSource.sort();
        var filterData = grid.dataSource.filter();
        var groupData = grid.dataSource.group();        
        var data = parameterMap({ sort: sortData, filter: filterData, group: groupData });
        var request = $.toJSON(data);
        location.href = CUSTOMER_QUOTES_EXPORT_URL + "?request=" + request;                
        return false;
    }

这是我的 mvc 控制器端点

public FileResult ExportQuotes([DataSourceRequest]DataSourceRequest request)
{
...
}

但请求参数永远不会被 JavaScript 调用传递的数据填充,正如您从我附上的图片中看到的那样:

我做错了什么?

提前感谢您的帮助

【问题讨论】:

    标签: javascript jquery asp.net-mvc-4 kendo-ui kendo-grid


    【解决方案1】:

    尝试更改,您正在使用“GET”请求,因此参数将进入查询字符串。

    var request = $.toJSON(data);

    location.href = CUSTOMER_QUOTES_EXPORT_URL + "?request=" + request;

    到这里:

    var request = decodeURIComponent($.param(data));

    location.href = CUSTOMER_QUOTES_EXPORT_URL + "?"+request;

    【讨论】:

      猜你喜欢
      • 2013-09-26
      • 1970-01-01
      • 2016-01-09
      • 2019-08-31
      • 1970-01-01
      • 1970-01-01
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多