You can use several parameters, separating them with a semicolon, but you must implement the logic for splitting them. This means that you can use any character as a separator, because you need to parse it yourself.
You are probably overriding GetVaryByCustomString(HttpContext context, string custom) in your global.asax. The custom parameter will contain everything you pass using VaryByCustom , like this
<%@ OutputCache Duration="86400" VaryByParam="none" VaryByCustom="custom1;custom2" %>
Note: base.GetVaryByCustomString does not implement any line splitting capabilities and will do something only when the browser is passed as a value. Otherwise, it will return null .
Richard
source share