2011-11-18 115 views
0

我正在使用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调用谷歌图表时。

有什么想法?非常感谢。

+0

尝试把脚本标签上方的div。这可能是脚本执行时与div成为DOM一部分的问题。 –

回答

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); 
    } 
}); 
+0

感谢您的回复,我在上面添加了更多细节。 – user351711