jQuery getJSON вызывается дважды для ASP.NET частичного просмотра MVC
-
11-09-2019 - |
Вопрос
У меня есть страница, которая содержит 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, который использует диалоговое окно, должно решить вашу проблему.