2010-11-22 15 views
9

私はこれについてもっと多くのスレッドがあることを知っていますが、私は助けてくれません。ASP.NET webmethodへのjQuery ajax呼び出しのパラメータの受け渡し

jQuery Ajaxを使用して、いくつかのパラメータをWebメソッドに渡したいと考えています。 AJAX呼び出しで

var paramList = ''; 
for(i = 0; i < IDList.length; i++){ 
    if (paramList.length > 0) paramList += ','; 
     paramList += '"' + 'id' + '":"' + IDList[i].value + '"'; 
    } 
    paramList = '{' + paramList + '}'; 
    var jsonParams = JSON.stringify(paramList); 


    $.ajax({ 
     type: "POST",   
     url: "editactivity.aspx/UpdateSequenceNumber",   
     data: jsonParams, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(response) { 

     } 
    }); 

私はparamListにデータを置く場合、私はエラーを取得:「無効なWebサービスの呼び出しを、パラメータの値行方不明:\ u0027aの\ u0027のを」

私はエラーを取得するjsonParamsにデータを置く場合:

"Cannot convert object of type \u0027System.String\u0027 to type \u0027System.Collections.Generic.IDictionary`2[System.String,System.Object]\u0027"

を私はjsonParamsを書き出す場合は、私はparamListを書き出す場合、それは{"id":"140", "id":"138"}

のような正しいJSON形式でだ、それは正しくないであります"{\"id\":\"140\",\"id\":\"138\"}"

ウェブ法などの形式:(それは行いませんそれだけはまだ...)

[System.Web.Services.WebMethod] 
    public static string UpdateSequenceNumber(string a, string b) 
    { 
     return a+b; 
    } 

私は間違っていますか?このJSONのことは正しくできないようです。

UPDATE:私は今、AJAXリクエストで{"id":["138","140"]}を送る最初の回答からいくつかの助け後

ウェブメソッドでは、パラメータとしてidという文字列が代わりに使用されるようになりました。

[System.Web.Services.WebMethod] 
public static string UpdateSequenceNumber(string id) 
{ 
    return id; 
} 

は今、私は新しいエラーを取得する:

"Type \u0027System.Array\u0027 is not supported for deserialization of an array."

答えて

14

あなたのJSONのパラメータ名は、C#のPARAMTER名と同じでなければなりません。

{"a":"140", "b":"138"} 

サーバーに不明なパラメータの数を送信する場合は、クライアント側で1つのパラメータに連結し、次にサーバー側で分割することができます。

+0

ありがとう、それは分かっていません。 後で var c = JSON.stringify({"id":list}); 私は:{"id":["138"、 "140"]}それは大丈夫です。しかし、私はajaxリクエストを行うときに新しいエラーが発生することを知っています: "\ u0027System.Array \ u0027は、配列の逆シリアル化をサポートしていません。 – larschanders

+0

私はリスト型をwebmethodでc#データ型として使用できることを知りませんでした; –

+0

お互いに助けてくれると嬉しいです – larschanders

関連する問題