Как остановить кэширование страницы веб-сайта ASPX.net/VB webforms

1
6

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

введите описание изображения здесь

Как только пользователь выполняет поиск по типу, он извлекает информацию, которая выглядит следующим образом

" Адрес: Какой-то адрес Serv Loc: Какой-то Srvloc Устройство: Имя устройства Устройство верхнего уровня: Какое-то устройство верхнего уровня "

Поскольку мы извлекаем данные из нескольких отдельных баз данных, бывают случаи, когда для определенного устройства отсутствует информация, например, устройство верхнего уровня или srvloc. И в тех случаях, когда пользователь искал устройство типа "AP4444", которое имеет полную информацию о вышестоящем устройстве, но затем искал "GT654", которое не имеет информации о вышестоящем устройстве. Страница вместо отображения пустой информации отображает информацию о вышестоящем устройстве AP4444.

Моя личная мечта — чтобы она отображала пустое место, когда нет никакой информации, как на обычном веб-сайте. До сих пор я пробовал довольно много исправлений, но ни одно из них не дало ничего.

1.Добавление следующего codeа в web.config <location path="File_IN_QUESTION.aspx"> <system.webServer> <caching enabled="false" enableKernelCache="false" /> </system.webServer> </location> Это, похоже, ничего не дало. Но, может быть, я добавляю code не в то место в файле web.config?

2. Добавляю следующую строку директивы в файл записи aspx <%@ OutputCache Duration="1" VaryByParam="productId" %> Я не смог запустить ее без ошибок, я думаю, потому что либо ее нужно реализовать в существующей строке директивы выше, либо где-то нужно определить OutputCache, я не уверен.

3. Добавляю следующий code в подпрограмму PageLoad, чтобы она активировалась каждый раз, когда мы выполняем поиск. Защищенная подпрограмма Page_Load(sender As Object, e As EventArgs) обрабатывает Me.Load Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache) Response.CacheControl = "No-cache" ... Это тоже, похоже, ничего не делает.

4.Добавляем следующий code в подпрограмму Page_Load, чтобы она активировалась каждый раз, когда мы выполняем поиск. Response.ClearHeaders() Response.AppendHeader("Cache-Control", "no-cache, no-store, must-revalidate") Response.AppendHeader("Pragma", "no-cache") Response.AppendHeader("Expires", "0") Я добавил это в то же место, что и номер 3 в Page_Load, и это тоже ничего не сделало.

5.Добавляем следующий code в подпрограмму Page_Load, чтобы она активировалась каждый раз, когда мы выполняем поиск. Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1)) Response.Cache.SetCacheability(HttpCacheability.NoCache) Response.Cache.SetNoStore() Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches) Это тоже, похоже, ничего не сделало.

6.Добавил следующий code в защищенную подпрограмму нажатия кнопки поиска. HttpResponse.RemoveOutputCacheItem("/File_IN_QUESTION.aspx")

Это тоже ничего не сделало. Со всеми, кроме одного, code запускается, но просто ничего не происходит. Я не уверен, есть ли где-то в Visual Studio настройки, в которых можно отключить настройку кэширования. Я бы не против отключить кэш для всех веб-страниц

Кстати, эта проблема присутствует во всех браузерах

Кузьма
Вопрос задан4 августа 2024 г.

1 Ответ

2
Леон
Ответ получен3 сентября 2024 г.

Ваш ответ

Загрузить файл.