什么是asp.net中的VaryByParam?

Sur*_*har 19 c# asp.net

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

的VaryByParam

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

Hei*_*nzi 33

引用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
Run Code Online (Sandbox Code Playgroud)

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

http://example.com/yourpage.aspx?A=1&C=4
http://example.com/yourpage.aspx?A=1&C=3
Run Code Online (Sandbox Code Playgroud)

  • 由于这些例子,这实际上是比接受的答案略好的答案. (4认同)

Rub*_*ias 18

来自@ OutputCache(MSDN):

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

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