Как сделать недействительным вид, который, как я знаю, изменился? - PullRequest
0 голосов
/ 09 июня 2011

Я разрабатываю систему обмена сообщениями для веб-сайта.

Когда пользователь нажимает на сообщение в папке «Входящие», он переходит к просмотру отдельного сообщения, которое позволяет ответить на него.

СейчасПредставьте, что она нажимает кнопку «Назад» сразу после просмотра отдельного сообщения.Она увидит папку «Входящие», но сообщение все равно будет выделено как непрочитанное, поскольку страница была кэширована.

Каков стандартный и рекомендуемый способ решения этой проблемы в ASP .NET MVC

1 Ответ

2 голосов
/ 09 июня 2011

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

Комбинация чего-то вроде

<meta http-equiv="Expires" content="Tue, 01 Jan 1980 1:00:00 GMT">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">

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

Вы также можете настроить эти атрибуты с помощью Response.Cache в вашем контроллере, чтобы они передавались в заголовке HTTP.

Еще один вариант в стиле MVC - указать этизаголовки, использующие атрибут OutputCache с NoStore = true:

[OutputCache (NoStore = true, Duration = 0, VaryByParam = "None")]

, который делает то же самое.

...