2013-11-14 5 views
2

У меня есть код для отключения кэширования в моем приложении MVC. Я использую следующие заголовки ответов. Они, похоже, работают во всех браузерах, кроме Chrome (в настоящее время используется версия 31.0.1650.48). Пользователи могут отправить форму с использованием значений модели. Когда они нажимают кнопку «Назад», мне нужна страница для перезагрузки с пустой моделью. Заголовки, похоже, частично работают, так как запрос нажимает на действие и возвращает пустую модель. Однако представление не обновляется. Значения из предыдущего сообщения сохраняются. Я попытался очистить ModelState, но это не работает. Какие-либо предложения? Заранее спасибо!!ASP.NET MVC 4.0 Кэширование Chrome

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

Это, вероятно, не лучшее решение, но то, что я сделал, было в javascript, чтобы значения в форме были нулевыми (или сбросными), когда страница загружается. – fassetar

+0

@fassetar: спасибо за предложение. – qquinn80

ответ

2

Отключение автозаполнения для формы исправлено для меня. Я ценю все входные данные!

<form autocomplete="off"></form> 
0

Существует способ сделать это в javascript за все на одном дыхании, как так ...

document.getElementById("YourFormID").reset(); 

Просто добавьте идентификатор в форму, и все ваши входы будут сброшены на странице загрузки. Независимо от того, будет ли он впервые посещать или нажать кнопку «Назад», страница со страницей будет сохранена в кэше. Самое большое отличие от вашего решения, и это то, что «the autocomplete attribute is new in HTML5». Это означает, что он не поддерживается в старых браузерах, и хотя он делает то, что вы хотите, он также предотвращает использование пользователем полей автозаполнения. Это означает, что, например, в вводах типов текста пользователи не видят предложения слов, которые они могли ввести на предыдущие или другие страницы. Вы можете увидеть пример here.

Смежные вопросы