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]];

viewbagを使用して渡された辞書をループするjquery配列の上に構築するにはどうすればよいですか。

4

1 に答える 1

4

viewbagを使用して渡された辞書をループするjquery配列の上に構築するにはどうすればよいですか。

まず最初に、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 に答える