ASP.NET переключение между экранами

#asp.net

#asp.net

Вопрос:

Я работаю над приложением, в котором пользователь может начать заполнять (многостраничную) форму и нажать кнопку «Назад», чтобы перейти к предыдущему экрану, и кнопку «Продолжить», чтобы перейти к следующему экрану.

В настоящее время страница была реализована с использованием обратной возможности браузера. Это приводит к циклической ссылке

Сценарий таков

  1. Перейдите со страницы 2 на страницу 3 и нажмите кнопку «Назад» на странице 3
  2. Пользователь теперь находится на странице 2 и нажимает кнопку «Назад», чтобы страница 2 перенесла его на страницу 3 (поскольку в истории браузера есть страница 3).

Это должно быть достигнуто с помощью сеанса? Как это может быть реализовано правильно? Какие параметры делает asp.net предоставить?

Комментарии:

1. Для # 2 вы говорите, что это то, что ПРОИСХОДИТ, или это то, что вы ХОТИТЕ, чтобы произошло? Если бы я начал со страницы 1, нажал продолжить, чтобы перейти на страницу 2, перешел на страницу 3, нажал обратно, я был бы на странице 2. Нажмите «Назад» еще раз, я ожидал бы оказаться на странице 1, а не 3?

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

3. Спасибо за ваш вопрос. Да, на странице 2, когда пользователь нажимает назад, он должен вернуть их на страницу 1.

Ответ №1:

Взгляните на элемент управления Wizard — он разработан для вашего сценария, когда у вас есть несколько страниц, и вы хотите перемещаться между ними. И вы можете объединить это с AJAX, чтобы избежать обратной отправки 🙂 У ScottGu есть статья об этом здесь.

Комментарии:

1. Я ценю ваш комментарий. Этот дизайн уже существует, и предложить переписать с использованием элемента управления wizard просто невозможно (по крайней мере, на данный момент.) Любые другие варианты были бы высоко оценены. Тем не менее, я проверю ссылку. Еще раз, спасибо.

2. да, все будет намного проще с помощью мастера asp.net управление

Ответ №2:

Вы можете сохранить все шаги в переменной сеанса, например, типа Queue. Когда вам нужно вернуться на два шага назад, просто два раза отмените очередь и перейдите к uri.