I want to apply output cache programmatically to a particular control. But when I’m using this code, it stores all the page and other user control in cache output.
if (Session["id"] != null)
{
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);
}
HttpResponse.Cacheproperty gets caching policy (such as expiration time, privacy settings, and vary clauses) of a whole web page. That’s why the code above caches the whole web page.To cache your user control you could use
PartialCachingAttribute. Is says that your control supports fragment caching. And then programmatically change the necessary caching properties throughUserControl.CachePolicyproperty:Additional information could be found in the Caching Portions of an ASP.NET Page articke on MSDN.