什么是asp.net中的VaryByParam?

时间:2009-12-14 08:48:00

标签: c# asp.net

当我在处理缓存时,有类似

的东西
  

的VaryByParam

页面指​​令中的

。这是什么?任何人都可以向我解释一下吗?

2 个答案:

答案 0 :(得分:29)

引用MSDN documentation

  

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

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

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

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

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

答案 1 :(得分:16)

来自@ OutputCache (MSDN)

  

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

通过使用它,如果使用相同的变量值调用页面,则将从缓存中检索该页面,直到达到Duration参数中指定的时间后才会执行该页面。