Можно ли использовать несколько параметров VaryByCustom при кэшировании пользовательского элемента управления? - PullRequest
7 голосов
/ 25 сентября 2008

Я пробовал это несколькими способами, но по некоторым причинам это не работает Это вообще возможно?

Ответы [ 3 ]

13 голосов
/ 25 сентября 2008

Да. Разделяйте их в декларации точкой с запятой.

4 голосов
/ 25 сентября 2008

Если вы переопределяете GetVaryByCustomString () в файле Global.asax.cs, вы можете передать список значений, разделенных точкой с запятой, которые затем необходимо проанализировать.

Существует одно встроенное значение (Браузер), которое будет использоваться, если указанный атрибут не существует.

0 голосов
/ 20 сентября 2016

Вы можете использовать несколько параметров, разделяя их точкой с запятой, но вы должны реализовать логику их разделения. Это означает, что вы можете использовать любой символ в качестве разделителя, потому что вам нужно разобрать его самостоятельно.

Вы, вероятно, переопределяете GetVaryByCustomString(HttpContext context, string custom) в вашем global.asax. Параметр custom будет содержать все, что вы передадите, используя VaryByCustom, например

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

Дополнительное примечание: base.GetVaryByCustomString не реализует какие-либо возможности разбиения строк и будет что-то делать, только если browser передано как значение. В противном случае он вернет null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...