Как заново заполнить все на странице стиля мастера для ASP.NET MVC? - PullRequest
0 голосов
/ 28 февраля 2009

У меня есть страница, которая создает заявку в нашей системе службы поддержки. Он действует как мастер со следующими шагами:

Шаг 1

Пользователь выбирает клиента из выпадающего списка. Существует событие jquery onchange, которое запускает и генерирует список для шага 2, скрывает div step1 и отображает div step2.

Шаг 2

Пользователь выбирает местоположение из выпадающего списка. Это генерируется на основе клиента, выбранного на шаге 1. Существует событие jquery onchange, которое запускает и генерирует список для шага 3, скрывает div step2 и показывает div step3.

Шаг 3

Пользователь выбирает тип из выпадающего списка и вводит текст в 3 различных текстовых поля. Если пользователь не может ввести текст или вводит недопустимый текст, мой контроллер изменяет состояние модели на недопустимое и возвращает представление.

Как я могу получить все выпадающие списки для повторного заполнения с правильным выбором, выбранным пользователем, и заставить страницу повторно отображаться на шаге 3?

Моей первой мыслью было использование ajax, и когда пользователь нажимает кнопку «Создать», я могу создать заявку оттуда и, в случае успеха, отправить их в детали заявки. В случае неудачи, просто отобразите сообщение об ошибке, и я все еще на странице, так что ничего страшного. Теперь, когда я пишу это, я думаю, что это лучше. Есть ли серьезные проблемы с использованием AJAX? Кажется, что в наши дни большинство сайтов используют какой-то тип javascript или ajax.

Вторая мысль - вообще не использовать ajax и передавать все страницы на сервер.

Что вы предлагаете?

Ответы [ 2 ]

2 голосов
/ 28 февраля 2009

3 шага отображают совершенно другую разметку. Возможно, AJAX-версия не принесет вам особой пользы, кроме мерцания страницы, которое можно избежать при изменении шагов.

Если вы идете не AJAX, вы получаете:

  • приятных закладок (www.ticketsystem.com/Customer -> www.ticketsystem.com/Customer/Microsoft/ -> www.ticketsystem.com/Customer/Microsoft/Location -> www.ticketsystem.com/Customer/Microsoft / Местоположение / Редмонд)
  • работает история браузера
  • более легкое тестирование

Чтобы снова отобразить списки после шага 3, вы должны загрузить их все и установить выбранный элемент в соответствии с параметром в URL.

0 голосов
/ 28 февраля 2009

Я согласен с вами. Используйте AJAX для отправки билета.

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