0

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つの整数を持つリストを使用してみます。

4

1 に答える 1

0

List <List <Int32 >>を使用すると、次の結果が得られます。[[82,193]、[136,142]、...]辞書ほど良くはありませんが、機能します。

于 2014-01-29T07:33:35.800 に答える