我想将 DataSourceRequest 对象从 JavaScript 函数发送到 MVC Controller 端点,该端点会考虑应用于网格数据源的过滤器来过滤 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 Controller 端点
public FileResult ExportQuotes([DataSourceRequest]DataSourceRequest request)
{
...
}
但是请求参数永远不会填充 JavaScript 调用传递的数据,正如您从我所附的图片中看到的那样:
我做错了什么?
预先感谢您的帮助
最佳答案
尝试更改,您正在使用“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;
关于javascript - 将 DataSourceRequest 对象从 JavaScript 函数发送到 MVC Controller 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25529428/