Что такое VaryByParam в asp.net?

Пока я работаю над кешем, есть что-то вроде

VaryByParam

в директиве страницы. Так что же это? Может ли кто-нибудь объяснить это мне?

Ответы

Ответ 1

От @OutputCache (MSDN):

Список строк, разделенных точкой с запятой, используемых для изменения выходного кэша. По умолчанию эти строки соответствуют значению строки запроса, отправленному с атрибутами метода GET, или параметру, отправленному с использованием метода POST. Если для этого атрибута установлено несколько параметров, выходной кеш содержит другую версию запрашиваемого документа для каждого указанного параметра. Возможные значения: none, * и любая допустимая строка запроса или имя параметра POST.

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

Ответ 2

Чтобы процитировать документацию MSDN:

Список строк, разделенных точкой с запятой, используемых для изменения выходного кэша. По умолчанию эти строки соответствуют значению строки запроса, отправленному с атрибутами метода GET, или параметру, отправленному с использованием метода POST. Если для этого атрибута установлено несколько параметров, выходной кеш содержит другую версию запрашиваемого документа для каждой комбинации указанных параметров. Возможные значения: none, звездочка (*) и любая допустимая строка запроса или имя параметра POST.

Итак, если вы установите его на "A;B", то эти URL-адреса будут кэшироваться отдельно:

http://example.com/yourpage.aspx?A=1&B=4
http://example.com/yourpage.aspx?A=1&B=3
http://example.com/yourpage.aspx?A=2&B=3

но эти URL-адреса будут иметь доступ к одной и той же записи кэша:

http://example.com/yourpage.aspx?A=1&C=4
http://example.com/yourpage.aspx?A=1&C=3