使用部分视图Asp.Net MVC中的jQuery显示Google Chart

时间:2011-11-18 07:14:29

标签: c# asp.net-mvc google-visualization

我正在使用Google图表显示我们正在投放的民意调查结果。我使用jQuery ajax调用(GET)来调用提交投票的ActionResult,然后返回带有Google图表的局部视图。

当通过jQuery加载HTML时,谷歌图表不会显示,但在页面加载时作为普通的RenderAction加载时工作正常。

任何人都可以解决一些问题,当通过jQuery加载时,是否需要加载必要的脚本?

非常感谢

对不起,伙计们应该提供更多细节:

$.ajax({
url: "Survey/RegisterAnswer",
type: 'POST',
data: {
  surveyQuestionId: surveyID,
  surveyAnswer: id
},
success: function (result) {
  alert(result);
  $('#survey-container').html(result).fadeIn("slow", function () {
  });
}});

这一切都运行正常,并返回Html,因为我可以在警报中看到它,部分视图如下所示:

  <script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load('visualization', '1', { packages: ['corechart'] });
  <%= Html.GoogleChart(ChartType.Pie, Model, "barChartDiv", Model.Data.First().Description, "Properties", "Total", 300, 250) %>
</script>

<h3>CHART</h3>
<div id="barChartDiv">
</div>

带有文本CHART的H3标题显示正常,但谷歌图表从不显示。如果可以在页面加载时使用相同的局部视图,那么就好像是从jQuery调用google图表时。

有什么想法?非常感谢。

1 个答案:

答案 0 :(得分:0)

你没有展示你的代码,所以我们只能猜测,我的猜测是你的AJAX调用成功回调你可能忘了将返回的部分注入DOM:

$.ajax({
    url: '/url_to_controller_action_that_will_return_a_partial',
    type: 'POST',
    success: function(result) {
        // inject the result into the DOM:
        $('#someElementId').html(result);
    }
});