Отображение Google Chart с помощью jQuery с частичным представлением Asp.Net MVC - PullRequest
0 голосов
/ 18 ноября 2011

Я использую диаграммы Google для отображения результатов опросов, которые мы проводим. Я использую jQuery ajax call (GET) для вызова ActionResult, который отправляет свой голос, а затем возвращает частичное представление с диаграммой Google на.

Диаграмма Google не будет отображаться при загрузке HTML-кода через jQuery, но работает нормально, когда загружается как обычное действие 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>

Заголовок H3 с текстом CHART отображается нормально, но диаграмма Google никогда не отображается. Это же частичное представление отлично работает, если может, когда страница загружается, поэтому кажется, что это просто когда Google-диаграмма вызывается из jQuery.

Есть мысли? Большое спасибо.

1 Ответ

0 голосов
/ 18 ноября 2011

Вы не показали свой код, поэтому мы можем только догадываться, и я предполагаю, что при успешном обратном вызове вашего вызова 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);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...