как сделать мастер с ASP.NET MVC

47
задан 20 July 2011 в 12:57
поделиться

6 ответов

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

Каждый мастер получает свою собственную страницу. Каждый шаг получает свое собственное отделение. Все шаги находятся в той же форме.

предыдущие/следующие кнопки по существу скрылись бы/показали бы отделение на каждом шаге процесса. Кнопка отправки последнего шага отправляет всю форму. Это было бы довольно тривиально для реализации этого использования jQuery, и будет легко поддержать, как все шаги мастера находятся в единственном ViewPage.

На стороне контроллера, у Вас было бы два метода контроллера, HttpVerbs. Получите версию, которая подготовила бы форму к просмотру и HttpVerbs. Версия сообщения, которая взяла бы FormsResult и проанализировала бы его для ухода информации, запрошенной для представления ответов пользователя на процессы устройства хранения данных/другого.

<час>

, Ничего себе, Ваш босс воняет.

Этот ответ почти корректно работает на те ******, у кого есть отключенный JavaScript (да, они оба). Можно настроить его, чтобы скрыть следующие предыдущие кнопки с помощью CSS и вывести на экран их в коде JavaScript. Таким образом, люди с JavaScript видят мастер, и люди без JavaScript будут видеть всю форму (без следующих/предыдущих кнопок).

другая опция состоит в том, чтобы создать представление для каждого шага в мастере. Можно сохранить промежуточные результаты формы на Сессии. Этот путь стоил бы большого количества времени и усилия реализовать, что означает, что Вы могли, вероятно, сжать некоторое сверхурочное время из своего босса, когда Вы демонстрируете, приблизительно за двадцать минут усилия Вы тратите во время ланча, как легкий маршрут JavaScript должен реализовать.

45
ответ дан 26 November 2019 в 19:40
поделиться

Иначе должен сохранить неполный объект, который Вы создаете с мастером к базе данных и просто передаете первичный ключ следующему шагу мастера. Я знаю, что это означает, что необходимо сделать некоторые поля базы данных nullable, но это действительно имеет добавленное преимущество, что можно сохранить первичный ключ в cookie и позволить пользователю возвращаться к мастеру в некоторое более позднее время. Эта опция не требует JavaScript или состояния сеанса.

12
ответ дан Ben Mills 26 November 2019 в 19:40
поделиться

Если Вы не можете использовать JavaScript, то сделайте каждый шаг представлением, с методом в контроллере, и сохраните свои данные на сессии до готовыми отправить базе данных.

можно сделать кнопки Next и Prev с помощью метода ActionLink HtmlHelper.

20
ответ дан Matthew 26 November 2019 в 19:40
поделиться

Если Вы не можете использовать JavaScript и не хотите тратить ресурсы сервера с Переменными сеанса, можно также сериализировать и десериализовать значения, вводимые в различные шаги, и передать его назад и вперед использование скрытого поля ввода. Немного как ViewState в Веб-формах ASP.NET.

3
ответ дан rodbv 26 November 2019 в 19:40
поделиться

Сделайте различные панели всеми быть стороной клиента... все в той же форме... и когда заключительная кнопка отправки нажимается, можно отправить все значения одновременно.

4
ответ дан Joel Martinez 26 November 2019 в 19:40
поделиться

Я собрал мастер входа в систему и задокументировал его идеи в своем блоге, если это поможет: текст ссылки

2
ответ дан 26 November 2019 в 19:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: