如何使我知道的视图无效?

时间:2011-06-09 09:37:34

标签: html asp.net-mvc asp.net-mvc-3 caching user-experience

我正在为网站开发一个消息系统。

当用户点击收件箱中的邮件时,她会转到允许回复该邮件的单个邮件视图。

现在,想象一下,在看到个别消息后,她会立即点击“返回”。她会看到收件箱,但邮件仍会被突出显示为未读,因为该页面已被缓存。

在ASP .NET MVC中解决此问题的标准和推荐方法是什么?

1 个答案:

答案 0 :(得分:2)

标准方法是告诉webbrowser使用元标记从服务器重新加载页面。

之类的组合
<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")]

完全相同。