Отключить кеш страницы, чтобы принудительно загружать страницы с помощью кнопки "Назад"

У меня есть сайт asp.net, который использует панели обновлений на странице, которые я не могу загрузить с сервера. У меня есть это для отключения кэша страниц на главной странице.

     Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1))
     Response.Cache.SetValidUntilExpires(False)
     Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches)
     Response.Cache.SetCacheability(HttpCacheability.NoCache)
     Response.Cache.SetNoStore()

Когда я нажимаю кнопку "Назад назад", чтобы вернуться на страницу, она говорит, что страница истекло. Другие страницы на моем веб-сайте работают и вызывают загрузку страницы, единственное решение, которое я нашел, но не могу использовать, - это вскрыть всю страницу на панели обновления, но я не могу этого сделать, потому что у меня есть средство просмотра отчетов на странице, не работает с ajax. Если кто-то может помочь, я бы очень признателен.

Ответы

Ответ 1

Это не проблема с кешем браузера; это обратная передача. Вы должны реализовать шаблон Post/Redirect/Get, чтобы избежать сообщения "вы хотите отправить снова?/Страница с истекшим сроком действия".

http://en.wikipedia.org/wiki/Post/Redirect/Get

Классический пример для этой вещи - это когда веб-страница имеет кнопку сохранения, которая вставляет что-то в базу данных. Кнопка "Сохранить" нажата → происходит обратная передача → код вставляет строку в таблицу → пользователь обновляет страницу (F5) → обратная передача происходит снова → код снова вставляет ту же строку.

Чтобы избежать двойной вставки в предыдущем примере, вам нужно перенаправить, когда нажата кнопка "Сохранить", и только тогда выполните вставку.

Ответ 2

Просто добавьте это в свой файл просмотра в заголовок:

<head>
<script language="JavaScript">
<!--
javascript:window.history.forward(1);
//-->
</script>
</head>

В теге body body добавьте это:

<body onUnload="OperaReload()">
<input type="hidden" id="refreshed" value="no">

Ответ 3

Чтобы перезагрузить страницу с помощью JavaScript, используйте следующее:

window.location.replace(window.location.pathname);