Шаблон для представления форм AJAX в ASP.NET MVC - PullRequest
2 голосов
/ 18 февраля 2011

Вот что я хотел бы сделать:

  1. Отображение диалогового окна, содержащего форму для создания новой записи (например, пользователя)
  2. Формаотправлено через AJAX.
  3. Получить ответ, который может быть либо той же формы с ошибками проверки, либо новой записи в формате JSON.

Некоторая дополнительная информация:

  • Я использую партиалы для рендеринга формы.Поэтому, когда диалоговое окно впервые отображается, я делаю ajax-вызов, чтобы получить пустую разметку формы, и когда форма отправляется, я буду использовать ту же часть, если форма имеет ошибки проверки.
  • Если ответ возвращается и возникают ошибки проверки, я просто хочу заменить существующую разметку формы на возвращенную разметку.
  • Если ответ возвращается и ошибок проверки нет, то язакроет диалоговое окно и возьмет отформатированный объект JSON и внесет некоторые другие изменения в страницу.

Некоторые части этой системы работают нормально.Проблема в том, что, если мне удастся вернуть обратно отформатированный объект JSON вместо HTML, я по определению никогда не буду уверен, какой будет тип возвращаемого значения.Сначала я всегда возвращал JSON из вызовов AJAX.Если форма имеет ошибки проверки, возвращаемый JSON будет иметь свойство с именем "html", которое будет содержать обновленную разметку формы.Если нет ошибок валидации, то возвращенный JSON будет иметь свойство с именем «data», которое содержит вновь созданный объект.

Я думаю, что мое решение будет работать, но мне интересно, если кто-нибудь еще придумал что-то ещеэлегантный.Я полагаю, что этот основной поток должен быть распространен в других приложениях, поэтому я не могу быть единственным, кто ищет решение этой проблемы.

1 Ответ

4 голосов
/ 18 февраля 2011

Вы упомянули, что хотите добавить проверку на стороне клиента ... тогда вам понадобится способ отобразить ошибки проверки в коде клиента. Если у вас это есть, то вместо того, чтобы возвращать HTML из вашего вызова AJAX, вы можете вместо этого вернуть список ошибок валидации в JSON и подключить их к тем же методам отображения ошибок, что и для валидации клиента.

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