Метод успеха не вызывается, когда PartialView возвращается из метода действия

#jquery #ajax #asp.net-mvc

#jquery #ajax #asp.net-mvc

Вопрос:

Форма:

 <form onsubmit="groupSubmitForm(this)" method="post" action="/Controller/Action">
  

Форма отправляется на asp.net Действие MVC, которое возвращает частичное представление.

 function groupSubmitForm(form)
{

alert("test");

form.preventDefault();

$.ajax({
    type: 'POST',
    url: $(form).attr('action'),
    contentType: "application/json; charset=utf-8",
    dataType: 'html',
    data: $(form).serialize(),       
    success: function (response) {

        alert("success");


    }
           }
});

return false;
    alert("test");

}
  

Сообщение принимается нормально при действии контроллера, но по какой-то причине метод успеха не вызывается, когда действие возвращает partialview.
Я использую почти идентичный фрагмент кода в том же приложении, который работает нормально. Единственное отличие заключается в том, что форма отправляется из модальной начальной загрузки Twitter.

Кто-нибудь знает, почему ни успех, ни ошибка не выполняются?

Обновить:

Это приводит к тому, что отправка на самом деле не остановлена так, как я пытаюсь это сделать, и именно это вызывает проблему. Как я могу остановить событие отправки?

Решение

Как я писал в обновлении, проблема заключалась в том, что preventDefault не работал, groupSubmitForm(форма, событие), event.preventDefault решил ее.

Комментарии:

1. что такое ошибка консоли?

2. Вы проверили, что теперь ошибки возникают на стороне сервера?

3. никаких ошибок на стороне сервера, html возвращается в браузер, но без предварительного вызова success .

4. в firefox: ReferenceError: $ не определен

Ответ №1:

Кажется, вы не добавили библиотеку JQUERY

 <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
  

Комментарии:

1. почему тогда форма отправляется на сервер?

2. @MikeAlike234 Форма будет игнорировать неработающий JavaScript и выполнять действие по умолчанию с помощью метода по умолчанию…