缓存用户控件时可以使用多个VaryByCustom参数吗?
题
我一直在尝试这几种不同的方式,但由于某些原因它不起作用。它甚至可能吗?
解决方案
是。用分号在声明中分隔它们。
其他提示
如果要覆盖Global.asax.cs文件中的GetVaryByCustomString(),则可以传入以分号分隔的值列表,然后需要对其进行解析。
如果指定的属性不存在,将使用一个内置值(浏览器)。
您可以使用分号分隔多个参数,但必须实现自己拆分的逻辑。 这意味着您可以使用任何字符作为分隔符,因为您需要自己解析它。
您可能会覆盖global.asax中的 GetVaryByCustomString(HttpContext context,string custom)
。 custom
参数将包含使用 VaryByCustom
传递的任何内容,如下所示
<%@ OutputCache Duration="86400" VaryByParam="none" VaryByCustom="custom1;custom2" %>
额外注意: base.GetVaryByCustomString
不实现任何字符串拆分功能,只会在 browser
作为值传递时执行某些操作。否则它将返回 null
。
不隶属于 StackOverflow