我注意到当我使用Response.Redirect跳转到一个.aspx页面时,有时会显示缓存页面而不是实际执行页面并从数据库中提取新数据。
在这里,我没有使用输出缓存或任何特殊的.NET功能 - 这是一个CRM,缓存可能发生在客户端或者更可能的是自动在IIS中进行。
顺便说一下,永远不会涉及查询字符串。我通过会话传递一个键。我知道如果我使用查询字符串,它可能部分地绕过缓存问题,但在这种情况下这不是一个选择,而且无论如何,我真正想要的是对发生的事情有更深入的了解。
我做了一些调查,有些人通过使用Server.Transfer来解决这个问题(与Response.Redirect的行为实际上有所不同,某些细节并不总是理想的),还有一些人说要在我想要避免缓存的页面上设置Response.Cache.SetCacheability(HttpCacheability.NoCache)。
我希望能更好地理解这里发生的事情,并可能了解最佳实践 - 首先,我认为.aspx页面总是被标记为避免缓存。是吗?
有什么想法吗?
在这里,我没有使用输出缓存或任何特殊的.NET功能 - 这是一个CRM,缓存可能发生在客户端或者更可能的是自动在IIS中进行。
顺便说一下,永远不会涉及查询字符串。我通过会话传递一个键。我知道如果我使用查询字符串,它可能部分地绕过缓存问题,但在这种情况下这不是一个选择,而且无论如何,我真正想要的是对发生的事情有更深入的了解。
我做了一些调查,有些人通过使用Server.Transfer来解决这个问题(与Response.Redirect的行为实际上有所不同,某些细节并不总是理想的),还有一些人说要在我想要避免缓存的页面上设置Response.Cache.SetCacheability(HttpCacheability.NoCache)。
我希望能更好地理解这里发生的事情,并可能了解最佳实践 - 首先,我认为.aspx页面总是被标记为避免缓存。是吗?
有什么想法吗?