Можете ли вы использовать несколько параметров VaryByCustom при кэшировании пользовательского элемента управления?

StackOverflow https://stackoverflow.com/questions/134962

  •  02-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Да.Разделяйте их в объявлении точкой с запятой.

Другие советы

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top