ピースペース

Viewで受け取ったModelデータをScriptで使用する簡単な方法

leave a comment »

たとえば、体重の記録をjQueryなプラグインでグラフ化しようとして
Viewが受け取ったModelデータをJavaScriptの配列に変換する必要があるような場合
どうするの??

Scriptコードの中に.netの繰り返し構文を埋め込む方法もありそうだが
ちょっと面倒だし、よくわからないし、気持ち悪い!ような気もして…
.net側で、Scriptな配列の文字列までを準備しておいて、
その文字列をScript側で配列として利用する。を試してみた。

なんだかこれでいけるよーな気がする~~~

@{
    List<string> values = new List<string>();
    foreach (var detail in Model)
    {
        values.Add(string.Format("[‘{0}’, {1}]",
                          detail.Date.ToString("yyyy/MM/dd"), detail.ValueToString()));
    }
    string strValues = string.Join(",", values);
}

<script type="text/javascript">
    $(document).ready(function () {
        var data = [@(Html.Raw(strValues))];

        $.jqplot(‘chart’, [data], {
            axes: {
                xaxis: {
                    renderer: $.jqplot.DateAxisRenderer
                }
            }
        });           
    }); 
</script>

var data = [@Html.Raw(strValues)];
だと、「条件付きコンパイルが無効になっています!」とか文句言われてうまくいかなない。
ので、よくわからないけど()でくくるとうまく動いた。

Written by nasu38yen

2011年12月8日 @ 2:09 PM

カテゴリー: プログラム

Tagged with

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。