2017-02-24 12 views
0

私は、jqueryを使用してデータ配列をc#Webメソッドに渡そうとしています。私は選択可能な行を持つテーブルを持っています。私の関数は、選択したデータのIDを渡す必要があります。しかし、私はPageMethodsでオブジェクト配列を渡すことはできません。
ここに私のjquery関数です。マップされた配列をPageMethodsに渡す方法は?

function DeleteQuestions() 
    { 
     var table = $('#questTable').DataTable(); 
     var data = (table.rows('.selected').data()).map(function (d) { return d.q_id; }); 
     PageMethods.Delete(data); 
    } 

私は放火犯とそれをデバッグする場合、veriableデータは次のようになります。私が望んでいたとして、[ "543"、 "544"、 "546"]オブジェクト。 そしてここでは、私のWebメソッドである:

[WebMethod] 
    public static void Delete(List<string> questId) 
    { 
     DB_UserControl carrier = new DB_UserControl(); //break pointed here 
    }//and looks it doesn't come here 

それは動作しませんし、エラーがある:は、子プロパティ内の循環参照を持つオブジェクトをシリアル化することはできません。私はエラーを検索しましたが、わかりませんでした。だから助けが必要です。前もって感謝します。

注:エラーはスクリプト関数の最後の行でスローされます。PageMethods.Delete(data); そして、マップされたデータについては、ある種のループ動作が発生する可能性があります。

+0

あなたは 'DB_UserControl'を投稿する必要があります –

+0

私はそうは思わない、それの機能はないので、テストのためです。そして、デバッグはそこで動作しません。エラーはjquery関数でスローされます。 –

+0

その情報が問題であったはずです...エラーがDeleteQuestionsにある場合、なぜC#コードを投稿しましたか? –

答えて

0

構文が変更されている問題を解決しました。私は使用します

var data = $.map(table.rows('.selected').data(), function (d) { 
      return d.q_id; 
     }); 

与えられた行の代わりに。私はエラーの原因を知りませんが、このコードは正常に動作し、私はC#でデータを取得します。すべてありがとうございました

関連する問題