Каков наилучший способ разработки формы мастера в ASP.NET MVC - PullRequest
1 голос
/ 15 января 2011

Я хочу создать форму в asp.net в стиле мастера. сделайте что-нибудь в следующем клике.

форма имеет 3 шага

  1. заполните вашу информацию

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

  3. отделка

Какова лучшая практика для разработки этого в ASP.NET MVC с мощью AJAX.

Кто-нибудь покажет мне лучший способ, которым я могу использовать это в MVC

Ответы [ 4 ]

2 голосов
/ 15 января 2011

Вот как вы могли бы продолжить: элементы каждого шага мастера могли бы перейти в отдельный div.Кнопки Next и Previous покажут / скроют соответствующий div.На последнем шаге будет кнопка отправки, которая отправит всю форму на сервер.

Вы также можете взглянуть на плагин мастера jquery .

1 голос
/ 15 января 2011

Один из способов, которыми я реализовал мастер, - это иметь отдельную таблицу базы данных, которая содержит всю информацию, необходимую для хранения, и сохранять / извлекать данные в эту таблицу на каждом шаге вашего мастера - очевидно, в зависимости от размер и назначение мастера могут не соответствовать количеству обращений к базе данных, но я реализовывал только 5-страничный мастер с максимум 5-10 полями на каждой странице. Поэтому, когда вы попадаете на страницу, вы запрашиваете базу данных и извлекаете информацию из базы данных или, если она не существует, загружаете пустую страницу, где пользователь может затем ввести информацию, и она сохраняется при нажатии кнопки «Далее» или «Назад».

Для навигации между страницами я просто создал вспомогательный класс, который принимал имя страницы и тип кнопки (Next / Previous) и имел простой оператор switch, который возвращал страницу для перехода, а затем использовал ее в операторе RedirectToAction. Опять же, это может не подойти для более крупного приложения, но вы также можете взглянуть на использование Windows Workflow (затронуто в этой статье http://www.devx.com/dotnet/Article/29992), поскольку я знаю, что его можно использовать для создания приложений в стиле мастера.

0 голосов
/ 15 января 2011

Вам не нужно ничего на стороне клиента, чтобы достичь этого, также плохая практика - использовать javascript для чего-то кроме удобства пользователя.

У вас есть 2 проблемы с мастером:

1: поддержание состояния.т.е. сохранение данных между запросами.

2: выяснение, какое действие (обычно следующее или предыдущее) выполнить.

Поддержание состояния.

Вы можете использовать объект сеанса, но в идеале(и поэтому вы можете их модульно протестировать) все действия должны быть чистыми функциями.Я использую скрытые входы для сохранения данных между запросами.

Действия пользователя.

Для следующего / предыдущего просмотра.Добавьте 2 кнопки отправки в вашу форму и дайте им имена.Когда вы отправляете форму, кнопка с нулевым значением была нажата.Затем перенаправьте на соответствующее действие.

0 голосов
/ 15 января 2011

Это не особенно решение MVC, но я советую реализацию на стороне клиента с использованием JQuery LightBox .

...