2

我有 MVC 3 应用程序,并且我有Dictionary<String,int>c# 类型的字典。我已使用 ViewBag 将此字典从 Index 操作传递给 Layout 视图。布局视图由 jquery 代码组成。在这里,我想在 jquery 中构建如下数组。

var s1 = [['06/15/2009 16:00:00', 112000], ['06/16/2009 16:00:00', 122000], ['06/17/2009 16:00:00', 104000], ['06/18/2009 16:00:00', 99000], ['06/19/2009 16:00:00', 121000],
            ['06/20/2009 16:00:00', 148000], ['06/21/2009 16:00:00', 114000], ['06/22/2009 16:00:00', 133000], ['06/22/2009 16:00:00', 161000], ['06/23/2009 16:00:00', 173000]];

如何在 jquery 数组上构建循环遍历使用 viewbag 传递的字典。

4

1 回答 1

4

如何在 jquery 数组上构建循环遍历使用 viewbag 传递的字典。

首先,没有像jquery array这样的概念。它被称为javascript 数组。其次,您为什么要循环播放?

使用 JSON 序列化程序为您完成这项工作:

@model Dictionary<string, int>
<script type="text/javascript">
    var s1 = @Html.Raw(
        Json.Encode(
            Model.Select(x => new object[] { x.Key, x.Value })
        )
    );
</script>

哦,对不起,我忘了你正在使用ViewBag而不是查看模型(这是你应该使用的)。在这种情况下,您需要将填充到此 ViewBag 中的任何内容转换为相应的类型,然后才能对其执行有用的操作(例如 LINQ 查询):

<script type="text/javascript">
    var s1 = @Html.Raw(
        Json.Encode(
            ((Dictionary<string, int>)ViewBag.SomeDict).Select(x => new object[] { x.Key, x.Value })
        )
    );
</script>
于 2012-08-27T07:18:35.850 回答