powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC: постинг AJAX-формы и вариации реакции контроллера - нужен подход.
4 сообщений из 4, страница 1 из 1
MVC: постинг AJAX-формы и вариации реакции контроллера - нужен подход.
    #38574177
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак, есть страничка, на ней AJAX-форма, которую я создаю через
@using (Ajax.BeginForm(....

Обработка формы попадается в контроллер. Первым делом идет серверная валидация (клиентскую сейчас не обсуждаем). По результатам дальше могут быть следующие варианты:
1) Форма не прошла серверную валидацию - вернуть частичное представление, которое должно перезагрузить аякс-форму с указанием ошибок
2) Вернуть частичное представление, которое должно быть вставлено или заменено на страничке (не исходная форма) (пусть даже элемент будет заранее предопределен)
3) Выполнить RedirectToAction

Решать, что сделать, должен контроллер (на то он и контроллер) по результатам обработки полученных данных. Но вот беда, реакцию я обязан предопределить заранее еще в Ajax.BeginForm.


Решения, которые приходят в голову:
А) перепилить function asyncOnSuccess в jquery.unobtrusive-ajax.js, тем самым создав проблемы (возможно, небольшие) с обновлением версий библиотек, и добавить дополнительные атрибуты к аякс-форме
Б) отказаться от microsoft unobtrusive ajax, написать свой хелпер для аякс-формы и пользовать напрямую jQuery-ajax (сБДиШ)
В) возвращать из контроллера какие-то js-скрипты вместе с контентом (некрасиво и не знаю как это заставить работать)

Возможно, я упускаю какой-то более простой вариант - посоветуйте. От AJAX в пользу полных перегрузок страниц отказываться не хочу.
...
Рейтинг: 0 / 0
MVC: постинг AJAX-формы и вариации реакции контроллера - нужен подход.
    #38574349
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

а кто мешает сделать так
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$.ajax({
            url: data-url,
            type: "POST",
            data: { 'id': id },
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            success: function (data) {
            },
            error: function (error) {
            }
        })
...
Рейтинг: 0 / 0
MVC: постинг AJAX-формы и вариации реакции контроллера - нужен подход.
    #38574383
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну это же вариант Б, правильно я понимаю?
...
Рейтинг: 0 / 0
MVC: постинг AJAX-формы и вариации реакции контроллера - нужен подход.
    #38581267
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, смог сделать поверх стандартного unobtrusive ajax:

можно не указывать UpdateTargetId (указав нужный target в другом data-свойстве), соответственно, стандартный JS-обработчик ничего не делает, на OnSuccess повесил собственный JS-обработчик, который извлекает из заголовков ResponseHeaders ответ контроллера о том, что ему делать, ну и, соответственно, либо обновляет target так же, как и стандартный обработчик, либо перезагружает аякс-форму, либо уходит на другую страницу.
Ну и оболочку для хелпера для создания модифицированных аякс-форм.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC: постинг AJAX-формы и вариации реакции контроллера - нужен подход.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]