ASP.Net MVC 3.0属性[OutputCache]

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

我的问题是...这是所有用户会话的全局缓存输出还是每个会话特定的缓存选项。 换句话说,如果user1在OutputCache属性设置为1小时的操作发出请求,并在中午(中午12:00)开始请求。 用户2对同一动作发出请求,但在中午三十点(下午12:30)。 两位用户的缓存结果是否相同,如果是这样,用户2的缓存输出是否会在下午1:00更新?


依靠。 如果你的URL包含任何用户特定的部分(例如~/blogs/userid/1 ),那么是的,否则它不是会话特定的。 你可以根据参数的不同对它进行微调,...

ASP .NET中的缓存MVC与Web Forms没有区别,它只是基于URL的基础结构


你可以使用varybyparam像Aliostad所说的那样,持续时间将会是会话特定的,否则它不是。

[OutputCache(Duration=10, VaryByParam="none")]

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


您可以使用VaryByCustom轻松使其与Session相关并返回SessionId (非常便宜的操作)。

链接地址: http://www.djcxy.com/p/55699.html

上一篇: ASP.Net MVC 3.0 Attribute [OutputCache]

下一篇: Getting full URL of action in ASP.NET MVC