C # принудительная загрузка страницы при нажатии браузера - PullRequest
0 голосов
/ 16 декабря 2009

Хотелось бы узнать, как я могу определить, что кнопка возврата нажата в браузере.

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

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

В моем сеансе я сохраняю тип поиска. Вот почему я хочу знать, как принудительно загрузить page_load для кнопки возврата браузера.

Когда я отключаю кэш, я получаю это сообщение об ошибке (IE 7) «Срок действия веб-страницы истек»

PS: я читал эту ветку, но она не ответила на мой вопрос ( Принудительное обновление страницы при нажатии кнопки "Назад" )

Ответы [ 2 ]

1 голос
/ 16 декабря 2009

Возможно, вы ищете неправильное решение (решение ASP.NET, а не решение для браузера). Я думаю, что элементы управления отображаются таким образом, потому что браузер пытается помочь:

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

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

0 голосов
/ 28 июня 2011

Другое решение состоит в том, чтобы сгенерировать уникальную переменную JavaScript на стороне сервера (например, GUID) и записать ее на страницу с помощью, возможно, зарегистрированного сценария. Далее, при каждой загрузке страницы вы будете проверять, существует ли файл cookie с таким же набором переменных, если он существует, вы можете быть уверены, что просматриваете кэшированную страницу, и вам следует принудительно выполнить перезагрузку. В противном случае сохраните переменную в том же файле cookie для следующей загрузки.

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