ASP.Net MVC 3.0属性[OutputCache] - 这是全局的还是会话?

bar*_*ker 7 asp.net asp.net-mvc outputcache asp.net-mvc-3

在创建ASP.Net MVC 3.0应用程序时,我可以在操作中包含OutputCache属性,并定义缓存将持续的持续时间.在此持续时间之后,导致触发操作的任何活动都将导致此缓存结果被丢弃和刷新.

我的问题是......这个缓存输出是否对所有用户会话都是全局的,或者是特定于每个会话的缓存选项.换句话说,如果user1发出请求,其中具有OutputCache属性的操作设置为1小时,则在中午(中午12:00)开始请求.User2向同一个动作发出请求,但是在中午30点(下午12:30).两个用户的缓存结果是否相同,如果是这样,user2的缓存输出是否会在下午1:00刷新?

Ali*_*tad 6

要看.如果您的URL包含任何特定于用户的部分(例如~/blogs/userid/1),那么是,否则它不是特定于会话的.您可以根据param,...进行微调.

ASP NET MVC中的缓存与Web Forms没有什么不同,它只是基于URL的相同基础结构.


Bla*_*ICE 5

您可以使用像Aliostad这样的varybyparam,持续时间将是特定于会话的,否则不是.

[OutputCache(Duration=10, VaryByParam="none")]
Run Code Online (Sandbox Code Playgroud)

http://www.asp.net/mvc/tutorials/improving-performance-with-output-caching-cs