将模型转换为JSON并将其传递给JavaScript setOnLoadCallBack

时间:2015-07-19 08:44:26

标签: javascript json asp.net-mvc razor

以下是我的观点。我已修改它以显示我希望它如何工作。我有一个在加载页面时绘制的图形。我的模型包含它需要的数据。我必须将它转换为JSON(对吗?)然后将其传递给generateGraph,但是setOnLoadCallBack是我的问题。在调用setOnLoadCallBack之前,我无法弄清楚如何创建JSON字符串。

@model IEnumerable<FHWebUserInterface.Models.Weight>
<div id="visualization" style="width: 600px; height: 400px;"></div>

<div id="linechart_material"></div>



@{
    var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    var weightsAsJsonString = serializer.Serialize(Enumerable.Select(Model, weight =>
        new
        {
            date = weight.Date,
            value = weight.Value
        }));
}

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load('visualization', '1.1', { packages: ['corechart', 'imagelinechart'] });
</script>
<script type="text/javascript">
    function drawVisualization(weightsAsJsonString) {

        // Removed the body            

        chart.draw(data, options);
    }
    google.setOnLoadCallback(drawVisualization(weightsAsJsonString));
</script>

1 个答案:

答案 0 :(得分:1)

你只需要像这样在JavaScript块中的某个地方呈现你的json(我已经在&调用之前添加了它):

google.setOnLoadCallback