将c#字典映射到jQuery中的数组
本文关键字:数组 jQuery 字典 映射 | 更新日期: 2023-09-27 18:08:32
在我的视图模型中,我有一个字典,我想在jQuery函数中评估。我很难在这两种语言之间进行映射。
视图模型public Dictionary<int, string> Collection { get; set; }
脚本$("#someButton").click(function () {
var collection = {};
var count = '@(Model.Collection.Count)' * 1;
for (var i = 0; i < count; i++) {
collection[i] = // Model.Collection[i]
}
...
});
我如何通过索引直接从我的视图模型的集合属性检索值,或者用该数据填充一个本地javascript数组,以便我可以在我的函数的副本上操作?
我读了一些关于Knockout和Json的内容。. NET,但我真的希望在我的项目中避免另一个依赖/学习曲线
JSON只支持字符串作为键。所以你可以将Dictionary<int, string
>转换为Dictionary<string, string>
,然后通过JSON.NET序列化它,将其放入JS代码中。例如:
var collection = <%= Model.CollectionJson %>
which在模型中:
public string CollectionJson {
get {
// correct API as @Superstringcheese suggested
return JsonConvert.SerializeObject(
Collection.ToDictionary(p => p.Key.ToString(), p => p.Value));
}
}