Cache ASP.Net Tutorial

You  create the custom  function in the Global.asax file by overriding the GetVaryByCustomString() method. 
File: Global.asax
<%@ Application Language="C#" %>

    public override string GetVaryByCustomString(HttpContext context, string custom)
    {
        if (String.Compare(custom, "css") == 0)
        {
            return Request.Browser.SupportsCss.ToString();
        }
        return base.GetVaryByCustomString(context, custom);
    }

            
File: Default.aspx
<%@ Page Language="C#" %>
<%@ OutputCache Duration="3600" VaryByParam="none" VaryByCustom="css" %>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    void Page_Load()
    {
        if (Request.Browser.SupportsCss)
            pnlCss.Visible = true;
        else
            pnlNotCss.Visible = true;
    }



    Vary By Custom


    
    

            id="pnlCss"
        Visible="false"
        Runat="server">
        Hello!
    
            id="pnlNotCss"
        Visible="false"
        Runat="server">
        Hello!