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.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
<!-- 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
Method 2
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.
Method 3
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1)); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Cache.SetNoStore();
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0