看起来这应该很容易,但我似乎无法弄清楚如何访问我的键/值对:
在服务器端:
public JsonResult GetDict(int type)
{
Repository repo = new Repository();
Dictionary<int,string> dict = repo.getDict(type);
return Json(dict, JsonRequestBehavior.AllowGet);
}
客户端之一:
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 的键/值对?我需要创建自己的包装类吗?