2011-10-12 108 views
0

我需要將JavaScript數組變量傳遞給代碼隱藏文件並訪問該數組。將數組從jquery ajax方法傳遞到c#代碼隱藏

請讓我知道這是否是Ajax方法期望的確切數據對象。在使用這個時,代碼總是跳轉到failureCallback函數。任何人都可以幫助我嗎?

的jQuery/JavaScript的:

result數組中的數據是:section_1,section_2,section_3

paramList的輸出爲:{"data":"section_1,section_2,section_3"}

function generateData() { 
    var result = $('#accordion').sortable('toArray'); 
    alert(result); 

    ExecutePageMethod("ReorderList.aspx", "HandleData", ["data", result], successCallback, failureCallback); 
} 

function ExecutePageMethod(page, fn, paramArray, successFn, errorFn) { 
    alert("entered page method"); 
    var paramList = ''; 

    if (paramArray.length > 0) { 

     for (var i = 0; i < paramArray.length; i += 2) { 
      if (paramList.length > 0) paramList += ','; 
      paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"'; 
     } 
    } 

    paramList = '{' + paramList + '}'; 

    alert(paramList); 

    $.ajax({ 
     type: "POST", 
     url: page + "/" + fn, 
     contentType: "application/json; charset=utf-8", 
     data: paramList, 
     dataType: "json", 
     success: successFn, 
     error: errorFn 
    }); 
} 

function successCallback(result) {  
    var parsedResult = jQuery.parseJSON(result.d); 
} 

function failureCallback(result) { 
    alert("entered failure"); 
} 

C#代碼背後:

public static string HandleData(object[] data) 
{ 
    //How should I parse this object data? 
    return data; 
} 

回答

1

有從客戶端訪問後面的代碼兩種方式。

  1. 將它存儲在與請求一起發送的集合中(通常這是通過表單提交)。
  2. 通過JavaScript設置對服務器端服務的「AJAX」調用。

上面有幾個變種,但基本上你正在消費一項服務,或者你正在回發。

看着你的代碼,你需要AJAX的方向。我將從this Stack Overflow post開始,因爲它涵蓋了將數組傳遞迴代碼隱藏的「服務端點」的基礎知識。

+0

你能告訴我如何將它存儲在一個集合中,併發送一個請求? – Krishh

相關問題