Кнопка «Отправить» не работает для формы AJAX, отображаемой в динамическом частичном представлении - PullRequest
0 голосов
/ 18 апреля 2009

У меня есть некоторый jQuery, который загружает частичное представление и вставляет его в DOM. Пока все хорошо.

Но теперь я внес некоторые изменения в отображаемый пользовательский элемент управления, чтобы включить форму Ajax. Однако кнопка отправки для этой формы не запускает вызов Ajax. Из того, что я могу сказать, он вообще ничего не делает. Мои контрольные точки в контроллере тоже не срабатывают.

Если я использую ссылку и добавляю onclick = "submit ()", форма отправляется и нормально запускает действие в моем контроллере, но, конечно, это делает обычное сообщение, а не сообщение ajax.

Форма похожа на:

<% using(Ajax.BeginForm("actionName", new AjaxOptions {
           OnSuccess = "updatePanel" })) { %>
  <!-- form elements in here -->
  <input type="submit" />
<% } %>

Я только что обнаружил, что он делает сообщение, если я изменю OnSuccess на OnComplete, чего я совсем не понимаю.

Однако, хотя его изменение на OnComplete работает, я получаю исключение в библиотеке Microsoft AJAX, где-то в:

try {
  a._webRequest.completed(Sys.EventArgs.Empty)
} finally {
  if (a._xmlHttpRequest!=null) {
    a._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
    a._xmlHttpRequest = null
  }
}

Курсор выделен в конце finally, говорит, что Object не имеет этого свойства или метода.

Полагаю, я мог бы жить с этим; это просто раздражает тестирование, когда он генерирует исключение в MicrosoftAjax.js и отключает отладчик в VS.

Ответы [ 2 ]

0 голосов
/ 18 апреля 2009

Вы убедились, что ссылаетесь на файлы Microsoft AJAX JS?

Вы должны убедиться, что у вас есть ...

<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>

Где-то на вашем сайте. По умолчанию я не думаю, что проект ASP.NET MVC добавляет эти ссылки JS.

0 голосов
/ 18 апреля 2009

Если вы используете OnSuccess, вам также не нужно иметь UpdateTarget, поэтому он вообще не запускался?

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