2011-10-12 13 views
0

JavaScript Array変数をコードビハインドファイルに渡してその配列にアクセスする必要があります。jquery ajaxメソッドからc#codebehindに配列を渡す

これが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

クライアントからの背後にあるコードにアクセスするには、2つの方法があります。

  1. リクエストで送信されたコレクションに格納します(通常、これはフォーム送信によるものです)。
  2. JavaScriptを使用してサーバーサイドサービスへの「AJAX」コールを設定します。

上記にはバリエーションがありますが、基本的にはサービスを利用しているか、投稿しています。

コードを見ると、AJAX方向が必要です。私はthis Stack Overflow postで始まります。なぜなら、配列をコードビハインドファイルの "サービスエンドポイント"に戻すための基本をカバーしているからです。

+0

コレクションに保存してリクエストを送信する方法を教えてもらえますか? – Krishh