jQuery getJSON вызывается дважды для ASP.NET частичного просмотра MVC

StackOverflow https://stackoverflow.com/questions/1100559

Вопрос

У меня есть страница, которая содержит html-код.RenderPartial, который отображает частичный вид ASP.NET MVC.

Частичное представление используется как диалоговое окно jQuery и открывается со страницы, на которой оно отображается.

Проблема в том, что внутри частичного представления я хочу загрузить и сохранить переменную при отображении диалогового окна.Эти данные используются для некоторого поиска при работе внутри диалогового окна.Но когда загружается страница с частичным просмотром, jQuery getJson внутри partialview вызывается дважды.Почему?

Код внутри частичного представления выглядит следующим образом:

<script type="text/javascript">
$(function() {
    var groups = null;    

    $.getJSON("/RessourceGroup/List", null, function(data) {
        groups = data;
    });

В Firebug я вижу, что страница (view) загружается один раз, но приведенный выше скрипт в частичном представлении по-прежнему вызывается дважды.Почему?

Это было полезно?

Решение

Похоже, что он будет загружен при загрузке страницы.Вы также перезагружаете часть через AJAX, когда появляется диалоговое окно?Если это так, то, вероятно, тогда он запустится снова.

Редактировать:Основываясь на вашем обновлении, я подозреваю, что тег script находится внутри DIV и что DIV клонируется при вызове виджета dialog.Перемещение скрипта за пределы DIV, который использует диалоговое окно, должно решить вашу проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top