2014-08-27 33 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

相關問題