Я добавил директиву outputcache на свою страницу asp.net (asp.net 4.0) следующим образом:
<%@ OutputCache Duration="3600" Location="Client" VaryByParam="None" %>
Однако, похоже, это не работает. Когда я проверяю информацию заголовка http, я вижу это:
HTTP/1.1 200 OK =>
Cache-Control => no-cache, no-store
Pragma => no-cache
Content-Type => text/html; charset=utf-8
Expires => -1
Server => Microsoft-IIS/7.0
X-AspNet-Version => 4.0.30319
Set-Cookie => ASP.NET_SessionId=0txhgxrykz5atrc3a42lurn1; path=/; HttpOnly
X-Powered-By => ASP.NET
Date => Tue, 15 Nov 2011 20:47:28 GMT
Connection => close
Content-Length => 17428
Выше показано, что директива OutputCache не была применена. Я даже попробовал это из codebehind:
this.Response.Cache.SetExpires(DateTime.Now.AddHours(1.0));
TimeSpan ds = new TimeSpan(0, 1, 0, 0);
this.Response.Cache.SetMaxAge(ds);
Приведенный выше код должен иметь те же результаты, что и директива OutputCache, но когда я проверяю информацию заголовка http, я вижу, что она все еще не применяется.
По сути, цель здесь - убедиться, что когда пользователь нажимает кнопку «Назад» и попадает на мою страницу, страница не будет извлечена с сервера. Я хочу, чтобы браузер не отображал всплывающее окно с запросом на повторную отправку. Я хочу, чтобы браузер просто использовал копию страницы, которая находится в его кэше.
Спасибо заранее за любую помощь.