2014-08-27 68 views
0

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

这是我做我的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调用,因为你从照片上可以看到我已经附:

Image 1 - Object being constructed by the parameterMap

Image 2 - URL being sent to the end-point

Image 3 - MVC Controller Endpoint Parameter

我做错了什么?

在此先感谢您的帮助

回答

1

尝试改变,您正在使用“GET”的要求,因此参数将在查询字符串去。

var request = $ .toJSON(data);

location.href = CUSTOMER_QUOTES_EXPORT_URL +“?request =”+ request;

这样:

VAR请求= decodeURIComponent($ PARAM(数据)。);

location.href = CUSTOMER_QUOTES_EXPORT_URL +“?”+ request;

+0

谢谢SSA - 排序! – EdsonF 2014-08-27 14:23:40

相关问题