Jsonオブジェクトを返す際に問題が発生しました。これがコードです。
public JsonResult getDictionary(List<Int32> input)
{
Dictionary<Int32, Int32> dict = new Dictionary<Int32, Int32>();
...fill dict
return Json(dict);
}
これがjavascriptコードです
var dict = new Object();
...
$("#Button").click(function ()
{
var postData = { input: inputArray };
$.ajax({
type: "POST",
url: "/Auction/getDictionary",
data: postData,
success: function(data){
for(var i in data){
dict[i.Key] = i.Value;
}
//dict = data;
},
dataType: "json",
traditional: true
});
});
私の問題は、「dict」が「data」で埋められず、「data」にブレークポイントを設定できないため、「data」に値があるかどうかを確認できないことです。
私はここですでに同様の質問を見つけましたが、彼が何をしているのかわかりません。
編集:このエラーが発生します(英語に翻訳しようとします):[ArgumentException]:タイプ "System.Collections.Generic.Dictionary`2 [[System.Int32、mscorlib、Version = 4.0.0.0、Culture = neutral、 PublicKeyToken = b77a5c561934e089]、[System.Int32、mscorlib、Version = 4.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089]]"は辞書のシリアル化/逆シリアル化ではサポートされません。キーは文字列またはオブジェクトである必要があります。
オブジェクトに2つの整数を持つリストを使用してみます。