我知道我可以使用VaryByParam属性,但它的作用并不完全是我的目标。
根据查询字符串缓存不同版本的页面会发生什么。
例如Page.aspx?ID = Tom有自己的缓存版本,ID = Arnold有另一个。现在我想要做的就是不要缓存Arnold。我只想在查询字符串为Tom时缓存页面。
有什么想法吗?
答案 0 :(得分:1)
对于C#
public static void cacheOutput(Page page, double minutes)
{
page.Response.Cache.SetExpires(DateTime.Now.AddMinutes(minutes));
page.Response.Cache.SetCacheability(HttpCacheability.Server);
page.Response.Cache.SetValidUntilExpires(true);
}
最好是花几分钟时间。 好解! THX!
答案 1 :(得分:0)
尝试使用VaryByCustom并覆盖Application类中的GetVaryByCustomString方法。
答案 2 :(得分:0)
<Extension()> _
Public Sub CacheOutput(ByVal Page As Page, ByVal Minutes As Integer)
Page.Response.Cache.SetExpires(Date.Now.AddMinutes(Minutes))
Page.Response.Cache.SetCacheability(HttpCacheability.Server)
Page.Response.Cache.SetValidUntilExpires(True)
End Sub
这很有效。请注意,不会缓存具有查询字符串或POST参数的任何版本的页面。