以下是我的观点。我已修改它以显示我希望它如何工作。我有一个在加载页面时绘制的图形。我的模型包含它需要的数据。我必须将它转换为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>
答案 0 :(得分:1)
你只需要像这样在JavaScript块中的某个地方呈现你的json(我已经在&
调用之前添加了它):
google.setOnLoadCallback