8

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.

3 Answers 3

11
<!-- 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

Sign up to request clarification or add additional context in comments.

Comments

9

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.

Comments

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.