Antony Delaney
Antony Delaney

Reputation: 1168

Disable ASP.net Cache

Is there a way to disable asp.net caching on selected page. It would be nice if this can be done from the web.config.

Upvotes: 8

Views: 19304

Answers (3)

Samdrain
Samdrain

Reputation: 431

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

Upvotes: 7

Daniel Dyson
Daniel Dyson

Reputation: 13230

Yes you can if you are willing to create your own config section: http://msdn.microsoft.com/en-us/library/2tw134k3.aspx

In your config section put something like,

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

You could add more properties such as duration if you like.

Then, on the page_Init method of your pages, check this configuration section and call the following where appropriate:

Response.Cache.SetCacheability(HttpCacheability.NoCache)

Edit: Tip: Put the init code in a base class that your pages inherit, so that it is only one place.

Upvotes: 9

Justin Niessner
Justin Niessner

Reputation: 245429

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

Or

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

Unfortunately, it has to be done within the page. There's no easy way to do it from web.config. For more information, check out:

MSDN - Setting the Cacheability of a Page

Upvotes: 11

Related Questions