我正在为网站开发一个消息系统。
当用户点击收件箱中的邮件时,她会转到允许回复该邮件的单个邮件视图。
现在,想象一下,在看到个别消息后,她会立即点击“返回”。她会看到收件箱,但邮件仍会被突出显示为未读,因为该页面已被缓存。
在ASP .NET MVC中解决此问题的标准和推荐方法是什么?
答案 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")]
完全相同。