2012-08-27 37 views
2

我有MVC 3應用程序,並且在c#中有Dictionary<String,int>類型的字典。我已將此字典使用ViewBag從Index操作傳遞給佈局視圖。佈局視圖由jQuery代碼組成。在這裏,我想在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

如何構建上面jQuery數組通過使用viewbag傳遞的字典循環。

首先第一件事情沒有這樣的概念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>