缓存用户控件时可以使用多个VaryByCustom参数吗?

时间:2008-09-25 18:10:02

标签: asp.net caching

我一直在尝试这几种不同的方式,但由于某些原因它不起作用。它甚至可能吗?

3 个答案:

答案 0 :(得分:13)

是。用分号在声明中分隔它们。

答案 1 :(得分:4)

如果要覆盖Global.asax.cs文件中的GetVaryByCustomString(),则可以传入以分号分隔的值列表,然后需要对其进行解析。

如果指定的属性不存在,将使用一个内置值(浏览器)。

答案 2 :(得分:0)

您可以使用分号分隔多个参数,但必须实现自己拆分的逻辑。 这意味着您可以使用任何字符作为分隔符,因为您需要自己解析它。

您可能会覆盖global.asax中的GetVaryByCustomString(HttpContext context, string custom)custom参数将包含您使用VaryByCustom传递的任何内容,例如

<%@ OutputCache Duration="86400" VaryByParam="none" VaryByCustom="custom1;custom2" %>

额外注意:base.GetVaryByCustomString没有实现任何字符串拆分功能,只会在browser作为值传递时执行某些操作。否则它将返回null