使用参数以声明方式缓存页输出的多个版本
在 ASP.NET 页中包括 @ OutputCache 指令,该指令带有 Duration 属性。Duration 属性是必需的,并且必须将其设置为大于零的整数。在 @ OutputCache 指令中,包括 VaryByParam 属性,并将其值设置为想要使页随之变化的查询字符串或窗体发送参数的名称。 下面的代码示例将页缓存 60 秒,并指定将要根据 City 查询字符串值或窗体发送参数缓存页输出的不同版本。  复制代码 
<%@ OutputCache Duration="60" VaryByParam="City" %>
 
注意 
如果要根据多个参数改变输出缓存,请包括以分号 (;) 作为分隔符的参数名称的列表。如果要根据所有的参数值来改变缓存,请将 VaryByParam 属性设置为星号 (*)。下面的代码示例演示如何通过 City 和 ZipCode 参数改变页输出。
 
使用参数以编程方式缓存页输出的多个版本
在页的 Page_Load 事件中,对 Response 对象的 Cache 属性调用 SetCacheability 和 SetExpires 方法。将参数名指定为 Response 对象的 VaryByParams 属性的变量,并将该属性设置为 true。 下面的代码示例演示当具有不同的 Zip 参数值的请求到达服务器时,如何缓存页的多个版本。C#  复制代码 
Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);
Response.Cache.VaryByParams["Zip"] = true;
 
Visual Basic  复制代码 
Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0))
Response.Cache.SetCacheability(HttpCacheability.Public)
Response.Cache.SetValidUntilExpires(True)
Response.Cache.VaryByParams("Zip") = True
 
注意 
如果要根据多个参数改变缓存的内容,请多次设置 VaryByParams 属性。如果要根据所有标头值改变缓存的内容,请将 VaryByHeader 属性设置为星号 (*)。下面的代码示例演示如何通过 City 和 Zip 参数改变页输出。