jQuery не попал MVC контроллер на второй проход в IE - PullRequest
1 голос
/ 09 июня 2011

Я начну с того, что это прекрасно работает в Chrome и Firefox, но не в IE (IE9).

Желаемое поведение: на моей странице есть частичное представление, содержащее гиперссылку.Когда вы нажимаете на гиперссылку, она использует функцию jQuery, чтобы открыть диалоговое окно для ввода новой заметки.Когда вы закрываете диалоговое окно, оно должно обновить частичное представление с новым счетом.

В IE это работает на первом проходе, но не на последующем.

Я использую jQuery 1.6.1 и jQuery UI 1.8.13 для диалогового окна.

Вот моя функция, которая вызывается по гиперссылке, и я подтвердил, что она выполняет эту функцию каждый раз, просто не попадая в контроллер, когда.load вызывается (или теряет из виду функцию закрытия):

function showNoteDialog(id) {
    //alert(id);
    var dialogOpts = {
        title: 'Add Note',
        modal: true,
        autoOpen: false,
        height: 600,
        width: 600,
        closeOnEscape: true,            
        open: function (event, ui) {
            jQuery.ajaxSetup({ cache: false });
            //display correct dialog content
            $('#noteDialog).load('<%= Url.Action("ModalNoteEdit","Notes")%>', { id: id });
        }
        ,
        // refresh the partial view
        close: function (event, ui) {
            $('#noteList).load('<%= Url.Action("NoteList","Notes")%>');                
        }
    };
    $('#noteDialog).dialog(dialogOpts);
    $('#noteDialog).dialog('open');

    //end dialog
    return false;
}

Ответы [ 2 ]

5 голосов
/ 09 июня 2011

Держу пари, что IE кэширует результат действия ModalNoteEdit. Я бы попытался сделать что-нибудь, чтобы предотвратить это кеширование. Возможно, установите заголовок ответа или добавьте строку запроса к этому запросу, которая меняется каждый раз. Например:

$('#noteDialog).load('<%= Url.Action("ModalNoteEdit","Notes")%>' + Date.now(), { id: id });
1 голос
/ 09 июня 2011

Вам не хватает множества закрывающих простых кавычек в селекторах.

$('#noteDialog) должно быть $('#noteDialog') и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...