Отключить историю браузера для приложения в MVC3 - PullRequest
1 голос
/ 01 февраля 2012

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

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

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

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

1 Ответ

1 голос
/ 01 февраля 2012

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

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

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