![]() |
1
31
不使用outputcache指令,您可以通过编程方式执行相同的操作,如下所示:
从OnInit开始这样做应该会很好。显然,您可以通过在outputcacheParameter上设置各种属性来调整缓存行为,该参数与指令具有所有相同的旋钮(实际上,这是使用该指令时生成的)。 关键是,您只能有条件地执行这个逻辑,而该指令使它成为无条件的。 更新: 另一种选择是,您可以使用上面的代码所基于的低级缓存API。例如
基本上,这是做同样事情的另一种方法,不使用任何标记为“不应该被调用”的API。最后,任何一种方法都会奏效,所以你选吧。 |
![]() |
2
5
编辑: 我比我自己更喜欢大卫·埃博的回答。 你可以使用
并以返回第一页的固定键和所有其他页的随机键的方式实现它。你可以(而且
应该
让
scavenging
机制负责记忆,但你可以使用
|
![]() |
3
4
我相信最好的方法是 HttpCachePolicy.AddValidationCallback 见 http://www.hanselman.com/blog/AdvancedASPNETCachingAndAddValidationCallBack.aspx -有一个完整的例子正好回答了这个问题。 |
![]() |
4
1
您仍然可以使用outputcache指令,在我看来,您最好使用一个基于global.asax中处理这一问题的可重用解决方案,而不是像您通常使用的任何varybycustom场景那样乱扔页面代码。 因此,例如,如果您使用带有中继器的分页方法,那么您可能只是在搜索场景中希望从缓存中排除特定页面上的任何回发。 Here 就是这样一个代码示例。该方法只需要使用httpContext对象访问response.cache.setNoServerCache(),然后捕获您希望避免缓存的任何条件。我希望这有帮助。 |
![]() |
5
0
我想你应该能用 OutputCache directive 将varyByParam属性设置为分号分隔的字符串列表,这些字符串用于更改输出缓存。 除非你只想缓存 只有 当Page=1时? |
![]() |
camilo888 · 输出缓存时间而不是持续时间MVC 10 年前 |