Скажем, у меня есть две страницы на том же ASP.NET C# WebSite.
Я пытался выключить кэш декларативно, попробованный не использовать верный для endResponse в моем перенаправлении... ничто, кажется, не имеет значения.
Не берите в голову всех! Я - идиот! Используя Visual Studio Dev Localhost Перенаправление перенаправляло к живой странице!:)
Причина выполнения страницы не влияет на цикл страницы, событие загрузки всегда срабатывает при выполнении страницы.
Итак, если Page_Load иногда не запускается, это потому, что страница кэшируется и не выполняется на сервере. Страницу можно кэшировать в браузере, где-нибудь в маршрутизаторе или на сервере, используя кеширование страницы на стороне сервера.
Если вы не включили кеширование страницы на стороне сервера для страницы, она кэшируется в браузере или в сети. Вы можете использовать настройки кеширования, чтобы попытаться устранить это:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Это предотвратит кэширование страницы в нормальных условиях. (Убедитесь также, что ваш браузер не находится в автономном режиме, тогда он будет использовать все, что есть в кеше, независимо от его настроек кэширования.)
Попробуйте использовать Server.Transfer вместо Response.Redirect.
Клиент не увидит изменение URL-адреса, но это может не иметь значения, в зависимости от ваших требований
Когда вы переходите на страницу с помощью кнопки «Назад», страница перезагружается из памяти, и запросы на сервер не отправляются.
Вы можете подтвердить это с помощью Fiddler .
Я не уверен, что это верно для всех браузеров.
Если вы перенаправляете, возможно, клиент кэширует ответ. Чтобы обойти это, вы можете добавить дополнительный параметр запроса, который просто будет содержать время.
Обычно этого достаточно, чтобы обойти большинство механизмов кэширования страниц.