私はこれについてもっと多くのスレッドがあることを知っていますが、私は助けてくれません。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."
ありがとう、それは分かっていません。 後で var c = JSON.stringify({"id":list}); 私は:{"id":["138"、 "140"]}それは大丈夫です。しかし、私はajaxリクエストを行うときに新しいエラーが発生することを知っています: "\ u0027System.Array \ u0027は、配列の逆シリアル化をサポートしていません。 – larschanders
私はリスト型をwebmethodでc#データ型として使用できることを知りませんでした; –
お互いに助けてくれると嬉しいです – larschanders