Ответ 1
Я думаю, что лучший ответ: это зависит от браузера, особенно после публикации/обратной передачи.
Старые браузеры использовали для отображения диалогового окна подтверждения, что "страница содержит данные POST, которые будут повторно отправлены", и вы можете либо продолжить (повторно отправить), либо отменить. Поскольку все, что происходит в ASP.NET WebForms, является частью элемента FORM
(ViewState, events и т.д.), Это приведет к повторению всего жизненного цикла.
Конечно, это не вызвало никаких проблем с дублирующими представлениями, поэтому многим сайтам приходилось сталкиваться с обходными решениями для проблемы с dupe, и сегодня большинство браузеров просто извлекают страницу из кэша.
... Это , кроме, вы переопределяете заголовки управления кешем и заставляете браузер не хранить страницу в кеше. Очевидно, что в этом случае он не может быть извлечен из кеша, поэтому обычно он будет повторно отправлен. Но, опять же, это зависит от браузера - например, некоторые браузеры не разрешают повторную передачу через SSL, поэтому, если этот протокол используется, пользователь просто увидит сообщение о том, что страница истекло/не может быть показано на рисунке.
Подумайте об этом, вероятно, еще лучший ответ: как разработчик сайта, вы действительно не можете зависеть от какого-либо конкретного поведения в браузере пользователя при нажатии кнопки "Назад". Если дублирующаяся подача может иметь отрицательные побочные эффекты (например, взимать кредитную карту дважды), тогда вам необходимо принять адекватные меры, чтобы это не происходило. В любом случае, это хорошая практика, так как пользователю вполне возможно просто дважды щелкнуть кнопку "отправить".