禁用ASP.net缓存

时间:2010-07-05 15:04:33

标签: c# .net asp.net vb.net

有没有办法在所选页面上禁用asp.net缓存。如果可以从web.config中完成,那就太好了。

3 个答案:

答案 0 :(得分:11)

<!-- In the page itself -->
<%@ OutputCache Location="None" %>

或者

// In the code-behind
Response.Cache.SetCacheability(HttpCacheability.NoCache)

不幸的是,它必须在页面内完成。从web.config做起来没有简单的方法。有关更多信息,请查看:

MSDN - Setting the Cacheability of a Page

答案 1 :(得分:9)

是的,如果您愿意创建自己的配置部分,可以使用http://msdn.microsoft.com/en-us/library/2tw134k3.aspx

在你的配置部分输入类似的内容,

<cachingConfig>
    <path>/Navigation/Menu.aspx</path>
    <path>/Target/Console.aspx</path>
    <path>/Target/Charting/Chart.aspx</path>
</cachingConfig>

如果您愿意,可以添加更多属性,例如持续时间。

然后,在页面的page_Init方法中,检查此配置部分并在适当的地方调用以下内容:

Response.Cache.SetCacheability(HttpCacheability.NoCache)

编辑:提示:将init代码放在页面继承的基类中,这样它就只有一个位置。

答案 2 :(得分:7)

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();