MVC3 Ajax.BeginForm OnSuccess не запускается в Firefox

ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ:

После ответа Дарина Димитрова я обнаружил, что проблема заключалась в том, что вызов AJAX метода контроллера UpdateForm()возвращал пустой нить. Это была модификация, которую я счел необходимой некоторое время назад после того, как столкнулся с другой проблемой. Передача пустой строки заставляла синтаксический анализатор Firefox задыхаться (в то время как Chrome и IE, по-видимому, не заботились), поэтому я заменил пустую строку пустым div.

Изменить:

Благодаря приведенным ниже предложениям Дарина Димитрова я обнаружил, что причина, по которой у меня возникли проблемы, связана с ошибкой, возникающей всякий раз, когда отправляется рассматриваемая форма.

JQuery Error

Ошибка гласит: «Узел не может быть вставлен в указанную точку иерархии». Это бросается каждый раз, когда форма отправляется. Я заметил в данных POST, что кажется, что это XMLHttpRequest. Это причина (рассматриваемый запрос AJAX просто возвращает HTML)? Вот данные POST от Firebug:

POST Data 1

POST Data 2

POST Data 3

Эта ошибка гласит: «Ошибка синтаксического анализа XML — элемент не найден».

К сведению - возвращаемый HTML всегда является пустой строкой...


У меня есть приложение MVC3, работающее на IIS7.В одном из моих представлений у меня есть форма, созданная с использованием вспомогательной функции Microsoft HTML:

@using (Ajax.BeginForm("UpdateForm", new AjaxOptions { UpdateTargetId = "TargetDiv", InsertionMode = InsertionMode.InsertAfter, OnSuccess = "ClearTextBox" }))
{
    @Html.TextArea("txtInput", new { id = "txtInput", cols = "20", rows = "5", wrap = "virtual" })
    
}

Это генерирует следующий HTML-код, когда Контроллер предоставляет это представление:


Что я в основном пытаюсь сделать здесь, так это взять текст внутри TextArea, называемого txtInput, и добавляйте его в конец Div, называемого TargetDiv, всякий раз, когда кнопка Sendщелкнуть выше и удалить текст из txtInputпосле завершения добавления с помощью метода ClearTextBox()(Javascript). Приложение всегда работает в любом браузере; и когда я запускаю в Internet Explorer или Chrome, очистка текста работает просто отлично. Однако Firefox, похоже, не хочет вызывать метод ClearTextBox().

Является ли Firefox несовместимым с этой опцией data-ajax-successв подписи формы?


Вещи, которые я пробовал

Я нашел этого парня: Ajax.BeginForm не вызывает onSuccess

Решение состоит в том, чтобы добавить этот сценарий:


Я вызываю этот сценарий:


...но я попытался заменить его на всякий случай. Нет радости.

Некоторые люди в чате C# попросили меня попробовать изменить вызов метода, включив в него круглые скобки, так что HTML получился таким:


Но это не помогло.

Ребята из C# Chat также предложили заменить вызов Javascript предупреждением — что-то вроде этого:


В то время как Chrome выводит окно сообщения, Firefox этого не делает!

6
задан Community 23 May 2017 в 12:12
поделиться