在jquery中构建数组

时间:2012-08-27 07:14:36

标签: c# jquery arrays asp.net-mvc-3

我有MVC 3应用程序,我在c#中有Dictionary<String,int>类型的字典。我已使用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]];

如何通过使用viewbag传递的字典构建上面的jquery数组循环。

1 个答案:

答案 0 :(得分:4)

  

如何通过使用viewbag传递的字典构建上面的jquery数组循环。

首先,首先没有 jquery array 这样的概念。它被称为javascript array。第二个为什么你想要循环?

使用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>