从部分视图显示Google图表使用jQuery Asp.Net MVC
问题描述:
我正在使用Google图表来显示我们正在运行的民意调查的结果。我使用jQuery ajax调用(GET)来调用提交投票的ActionResult,然后用Google图表返回部分视图。从部分视图显示Google图表使用jQuery Asp.Net MVC
当通过jQuery加载HTML时,Google图表不会显示,但在加载页面时作为正常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调用谷歌图表时。
有什么想法?非常感谢。
答
您还没有表现出你的代码,所以我们只能猜测和我的猜测是,在你的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);
}
});
+0
感谢您的回复,我在上面添加了更多细节。 – user351711
尝试把脚本标签上方的div。这可能是脚本执行时与div成为DOM一部分的问题。 –