0
以下のようにJSONでデータ配列を返すスクリプトがあります。POST JSON配列からASP.NET WebMethod
[
{"ItemID":"10319","ItemCode":"ITEM-010318","Qty":"1","custRef":"12 - Mitsubishi Fighter FK61F"},
{"ItemID":"10933","ItemCode":"ITEM-010932","Qty":"1","custRef":"12 - Mitsubishi Fighter FK61F"},{"ItemID":"10537","ItemCode":"ITEM-010536","Qty":"1","custRef":"12 - Mitsubishi Fighter FK61F"},
{"ItemID":"14863","ItemCode":"ITEM-014862","Qty":"1","custRef":"12 - Mitsubishi Fighter FK61F"},
{"ItemID":"14864","ItemCode":"ITEM-014863","Qty":"1","custRef":"12 - Mitsubishi Fighter FK61F"}
]
このデータは私のウェブメソッドは、この
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void AddItemsToCart(string [] itemID, string [] itemCode, string [] Qty, string [] custRef)
のように見えます
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "OrderFormServices.asmx/AddItemsToCart",
data: JSON.stringify(cartData),
dataType: "json"
});
次のように私は、その後、AJAXを経由して私のWebMethod属性にデータをプッシュcartData
という変数に格納されます
しかし、データを試してPOSTすると、コンソールにエラーが表示されます私は頭や尾を作ることができません!誰かそれにいくつかの光を当てることはできますか?
Type 'System.Collections.Generic.IDictionary`2[[System.String, mscorlib, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089],
[System.Object, mscorlib,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'
is not supported for deserialization of an array.
おかげで、私はあなたの第二の提案どおりに編集したと私は今 'cartData.pushを(使用しています{ 'はアイテムID':itemIdVal、 'をitemCode':itemCodeVal、 '数量':qtyVal、 'custRef':custRefVal }); 'しかし、これは動作していないよう - cartData.pushは関数ではありません? –
これはうまくいきません。 cartData.push({'itemID':[itemIdVal]、 'itemCode':[itemCodeVal]、 'qty':[qtyVal]、 'custRef':[custRefVal]} ); また、パラメータの名前がWebメソッドと同じCaseであることを確認してください(例:数量)。 – MoustafaS
'cartData.push'は関数ではありませんか? –