How to: Set the Cacheability of an ASP.NET Page Declaratively

The cacheability of a page or user control refers to whether or not a page can be cached on a device during its response life cycle. These devices include the client (browser) making the request, the Web server responding to the request, and any cache-capable devices, such as proxy servers, that are in the request or response stream.

If you know at design time what cacheability setting you need for a page, you can set cacheability declaratively. The page will then use the same cacheability settings for all requests. For more information, see Setting the Cacheability of a Page.

To set a page's cacheability declaratively

  1. Include an @ OutputCache directive in the page and define Duration and VaryByParam attributes.

  2. Include a Location attribute in the @ OutputCache directive and define its value as one of the following values in the OutputCacheLocation enumeration: Any, Client, Downstream, Server, ServerAndClient, or None.

    The following code shows how to set the page's cacheability to 60 seconds:

    <%@ OutputCache Duration="60" VaryByParam="None"%>
    

    Note

    The default setting is Any. If you do not define a Location attribute, the page output can be cached on all cache-capable network devices that are involved in the response. These include the requesting client, the origin server, and any proxy servers through which the response passes.

To set a page's cacheability declaratively using a cache profile

  1. Define a cache profile in your application's Web.config file and in the profile, include duration and varyByParam settings.

    The following <caching> configuration element defines a cache profile named Cache30Seconds, which will cache the page on the server for 30 seconds.

    <caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name="Cache30Seconds" duration="30" 
            varyByParam="none" />
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>
    
  2. Include an @ OutputCachedirective in each ASP.NET page that uses the profile, and set the CacheProfile attribute to the name of the cache profile defined in your Web.config file.

    The following code specifies that the page should use the cache profile named Cache30Seconds:

    <%@ OutputCache CacheProfile="Cache30Seconds" %>
    

See Also

Tasks

How to: Set a Page's Cacheability Programmatically

Concepts

Caching ASP.NET Pages

Caching ASP.NET Pages

Setting the Cacheability of a Page