2013-05-16 155 views
0

當前的腳本:將json數據傳遞給URL?

var IrregularChartParams = InitializeChartParams(); 

// parametreleri json stringe cevir... 
var chartParams = JSON.stringify(IrregularChartParams); 

$.ajax({ 
    url: '/Widget/GridExportToExcel', 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    data: chartParams, 
    .... 

控制器

public void GridExportToExcel(IrregularChartParams chartParams) 
{ 

我想有些事情就像下面:

// I know this does not work... 
var url = '/Widget/GridExportToExcel' + chartParams 
window.open(url); 

什麼是最簡單的方式來增加JSON數據與模型結合網址是什麼?

+0

http://stackoverflow.com/questions/5818065/how-to-pass-request-querystring-to-url-action –

+0

@Ravi,很抱歉我更新了我的問題。我使用剃刀分開的js文件。所以我不能使用「Ur.Action」 –

+0

在我看來,你真的想在查詢字符串中傳遞一些參數。如果你在你的action方法中匹配查詢字符串參數名和參數名,你會得到你想要的。 – Jammer

回答

1

可能是我無法解釋,但我找到了一個解決方案,我不知道,這是最好的,但它的工作原理

var IrregularChartParams = InitializeChartParams(); 
var url = '/Widget/GridExportToExcel?' + $.param(IrregularChartParams, true); 
window.open(url); 
1

1: 如果InitializeChartParams()函數,返回一個名稱 - 值對,你不需要任何東西,但改變請求方法GET

var IrregularChartParams = InitializeChartParams(); 

// parametreleri json stringe cevir... 
// var chartParams = JSON.stringify(IrregularChartParams); 
var chartParams = IrregularChartParams; 

$.ajax({ 
    url: '/Widget/GridExportToExcel', 
    type: 'GET', 
    contentType: 'application/json; charset=utf-8', 
    data: chartParams, 
    .... 

2: 如果InitializeChartParams()不會返回名稱值集合,您可以將其內容附加到作爲查詢字符串的網址$.param,正如您在答案中所述。

3: ,如果你願意,你可以通過IrregularChartParams作爲一個單一的查詢字符串項目到服務器,並在服務器反序列化:

var IrregularChartParams = InitializeChartParams(); 

var chartParams = JSON.stringify(IrregularChartParams); 

$.ajax({ 
    url: '/Widget/GridExportToExcel', 
    type: 'GET', 
    contentType: 'application/json; charset=utf-8', 
    data: {sp: chartParams}, 

and action method: 

public void GridExportToExcel(string cp) { 
    var chartParams = JsonConvert.DeserializeObject<IrregularChartParams>(json); 
    ... 
} 
+1

感謝您的回答,但傳遞json對象沒有問題。我的第一個代碼是這樣做的。 $ .ajax函數正在工作,但導出不起作用。因爲你不能用ajax請求導出excel文件... –

+0

@AliRızaAdıyahşiyep我明白你的觀點。你是對的。你做的方式足以工作。 +1給你的答案。乾杯 –