题 什么是asp.net中的VaryByParam?


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

的VaryByParam

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


13
2017-12-14 08:48


起源


您可以在以下链接中找到详细说明: stackoverflow.com/questions/3538012/... - Jonay


答案:


@ OutputCache(MSDN)

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

通过使用它,如果您使用相同的变量值调用您的页面,该页面将从您的缓存中检索,并且在指定的时间之前不会执行 Duration 争论达成了。


13
2017-12-14 08:50



Rubbens Faria先生,如果我想将缓存仅用于像Label这样的Web控件,我该怎么写 - Surya sasidhar
您可以编写包含标签的用户控件(.ASCX)并添加它 @OutputCache 进入那个控制。看看这里: msdn.microsoft.com/en-us/library/h30h475z.aspx - Rubens Farias
好的,我明白了谢谢鲁本斯法里亚斯先生 - Surya sasidhar


引用 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

24
2017-12-14 08:53



由于这些例子,这实际上是比接受的答案略好的答案。 - campbelt