我需要声明我不想使用'OutputCacheLocation.None'来缓存它吗?

问题描述:

我经常在网上看到如下的网站上的'OutputCacheLocation.None'。
http://msdn.microsoft.com/en-us/library/gg508808(v=vs.98).aspx

而且我想知道是否应该声明它,即使我没有明确指出要将其缓存。我需要声明我不想使用'OutputCacheLocation.None'来缓存它吗?

没有,没有需要。我至少不会使用它。

我总是写:

[OutputCache(NoStore=true, Duration=0)] 
public ActionResult MyAction() 
{ 
} 

但是,我从来没有尝试过,以排除那些属性之一。 NoStore可能就足够了。

+0

为了以防万一,您可以编写OutputCache? – Nigiri 2012-04-23 05:52:55

+0

只有当我不想缓存项目或自定义缓存时(例如,为每种语言创建一个缓存项目) – jgauffin 2012-04-23 05:53:50

+0

我明白了。谢谢 – Nigiri 2012-04-23 06:26:16

这不是设置MVC3缓存策略的唯一方法。

您也可以将其应用于操作级别。或者,直接写入响应:

response.setHeader("Pragma", "no-cache"); 
response.setHeader("Cache-Control", "no-cache"); 
response.setDateHeader("Expires", 0); 

签出更多的位置: http://www.codeguru.com/csharp/article.php/c18745/ASPNET-MVC3-Caching.htm

+0

.NET使用pascal案例。 – jgauffin 2012-04-23 05:54:45

嘛OutputCacheLocation被默认设置为Any:

http://msdn.microsoft.com/en-us/library/hdxfb6cy.aspx

+0

谢谢。我看到属性'location'的默认值是'Any'。但是OutputCache本身呢。 – Nigiri 2012-04-23 05:48:28