2012-02-01 3 views
1

Хотя я полностью отдаю себе отчет в том, что отключение кнопки «Назад» не является желательным признаком веб-сайта, это может быть самым простым решением для меня на данный момент. У меня был крайний срок для меня на работе, и если проще узнать, есть ли простой способ отключить кеширование истории во время процесса подачи заявки. Я полностью намерен построить способность возвращаться, но сейчас у меня просто нет времени и хотелось бы избежать некоторых проблем, которые могут возникнуть.Отключить историю браузера для приложения в MVC3

Так что, хотя я полностью осознаю, что кнопка «Назад» принадлежит вам ... но как я могу вернуть вашу кнопку назад до того, как вы запустили приложение, и для этого вам необходимо перезапустить (или что-то в этом случае лучше всего плохая ситуация).

Я надеюсь, что это имеет смысл, и я прочитал другое сообщение, когда использовался код за страницами, но не видел связанных с C# и MVC3. Поэтому, пожалуйста, не плачьте меня за то, что нужно ... это временная помощь!

Моим идеальным решением для этого было бы то, что, когда они нажимают кнопку «Назад», они возвращаются на страницу, прежде чем они начнут приложение. Это, надеюсь, сохранило бы их предыдущую историю, но не допустить, чтобы приложение нарушилось, пока я не смогу реализовать меры, чтобы поймать и обработать это.

+0

Использовать AJAX? Поверните целое '' в контейнер и используйте JS для ввода событий щелчка, которые в основном захватывают предполагаемый механизм «пересылки» и перенаправляют его через вызов ajax, который заполняет тег '' сам по себе. (Хотя, возможно, вам лучше работать над тем, чтобы выполнить работу, а не находить способы удержать ее на проходе). –

+0

Я подумал об этом, так как вы намекали на переписывание для использования ajax, было бы немного контрпродуктивно. Если я не смогу найти решение, у него будет небольшая возможность взломать пару дней, когда я напишу другой код, необходимый для обработки этого ... Другая вещь, которую я рассматривал, - это добавление поля в таблицу, которое все ссылается на сохранение последнего завершенного шага, а затем выполняет проверку загрузки страницы и перенаправляет, если нужно, с помощью js (у меня есть элемент noshow на оболочке для класса, чтобы они ничего не увидели, если они отключили js). – Jared

+0

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

ответ

1

Конечная цель для истории браузера - использовать AJAX. Это позволяет вам отправлять/получать на сервер и без него, если клиент не имеет опции «вернуться». Вы можете реализовать это с помощью метода, который Microsoft взяла для одного из своих демо-приложений MVC и разрешить каждому представлению получать в параметре «ajax». Когда он найден, он возвращает PartialView страницы (меньше заголовков), которые затем можно использовать для заполнения общего элемента содержимого (например, элемент <body> or `на странице).

Однако это, вероятно, больше работы по реализации, а затем решению исходной проблемы. Я, вероятно, буду отслеживать, на какой стадии они находятся (я упомянул о сеансах, как вы уже упоминали, используя базу данных), либо разрешить, либо перенаправить их обратно на «правильный» путь на основе этого значения. Это дает вам немного большую гибкость, было бы проще реализовать (со временем) и проведет все проверки на уровне сервера. Единственная реальная проблема, которую вы, , может, заключается в том, что некоторые браузеры кэшируют результаты, поэтому вы можете не получить повторную выборку на сервере, даже если они вернулись в процесс. Если это так, вы можете сделать только эту часть в стиле мастера на своей странице AJAX и оставить остальную часть веб-сайта без прикосновения, что фактически приведет к их правильному пути.

+0

Просто так известно. Причина, по которой я принял решение перейти к базе данных вместо сеанса, - это то, что я мог бы с легкостью и легко разрешить им «сохранить на потом» или что-то в этом роде, и я напишу им ссылку для возобновления приложения. Кроме того, поскольку это новая функция для компании, используемые таблицы не содержат никаких данных, кроме тестовых данных, и это не очень важно, чтобы стереть ее/изменить/что угодно. Поэтому с учетом этого я выбрал маршрут db через сеанс. Также я планирую иметь ajax-вызов на первом экране приложения и проверять SSN и возобновлять приложение, если оно существует. – Jared

Смежные вопросы