什么是asp.net中的VaryByParam?

当我在缓存时,有类似的东西

的VaryByParam

在页面指令中。 那这是什么? 任何人都可以向我解释一下吗?

来自@ OutputCache(MSDN) :

以分号分隔的字符串列表,用于更改输出缓存。 默认情况下,这些字符串对应于使用GET方法属性发送的查询字符串值,或使用POST方法发送的参数。 当此属性设置为多个参数时,输出缓存包含每个指定参数的请求文档的不同版本。 可能的值包括none,*和任何有效的查询字符串或POST参数名称。

通过使用它,如果使用相同的变量值调用页面,则将从缓存中检索该页面,并且在达到Duration参数中指定的Duration之前不会执行该页面。

引用MSDN文档 :

以分号分隔的字符串列表,用于更改输出缓存。 默认情况下,这些字符串对应于使用GET方法属性发送的查询字符串值,或使用POST方法发送的参数。 当此属性设置为多个参数时,输出缓存为每个指定参数组合包含所请求文档的不同版本。 可能的值包括none,星号(*)以及任何有效的查询字符串或POST参数名称。

因此,如果将其设置为"A;B" ,则这些URL将单独缓存:

 http://example.com/yourpage.aspx?A=1&B=4 http://example.com/yourpage.aspx?A=1&B=3 http://example.com/yourpage.aspx?A=2&B=3 

但这些URL将访问相同的缓存条目:

 http://example.com/yourpage.aspx?A=1&C=4 http://example.com/yourpage.aspx?A=1&C=3