0

これは簡単なはずですが、キーと値のペアにアクセスする方法がわかりません。

サーバー側:

  public JsonResult GetDict(int type)
  {
     Repository repo = new Repository();
     Dictionary<int,string> dict = repo.getDict(type);
     return Json(dict, JsonRequestBehavior.AllowGet);
  }

クライアント側の 1 つ:

  var mySelect = $('#mySelect');
  mySelect .empty();
  mySelect .append($('<option/>', { value: "", text: "-- pick one --" }));

  $.getJSON("/controller/GetDict/", { type: 1 }, function (dict, status) {
     // this doesn't work
     $.each(dict, function (index, entry) {
        mySelect .append($('<option/>', {
           value: entry.Key,
           text: entry.Value
        }));
     });
  });

getJSON 呼び出しから返された辞書から選択リストを作成するにはどうすればよいですか?

私の getJSON 呼び出しがエラーをスローしていることがわかりました。

タイプ 'System.Collections.Generic.Dictionary' は、ディクショナリのシリアル化/逆シリアル化ではサポートされていません。キーは文字列またはオブジェクトである必要があります。

キーが int であるキーと値のペアを返すにはどうすればよいですか? 独自のラッパー クラスを作成する必要がありますか?

4

1 に答える 1

0

dictを渡すと$.each、それindex キーでentry あり、値です。

$.each(dict, function (key, value) {
    var opt = $('<option>', { value:key, text: value });
    mySelect.append(opt);
});
于 2012-05-09T12:32:35.493 に答える