Насколько я понимаю, у вас есть две гибкие опции в ядре ASP.NET:
- Используйте
VaryByHeader
или VaryByQueryKeys
, если вы используете ResponseCacheAttribute
.
При использовании заголовков вам нужно записать значение, которое будет меняться в качестве заголовка, которое может быть любым произвольным значением (не нужно предоставлять данные клиенту):
Response.Headers.Add("X-My-Vary-Header", "this-is-variable");
По сути, это все, что VaryByCustomString
когда-либо делал для вас.На мой взгляд, вам больше не нужно помещать этот код в определенный метод / файл (например, global.asax).
Попробуйте
<cache>
Tag Helper при кэшировании в Razor.
Здесь у вас есть широкий диапазон вещей, которые можно «варьировать» на: vary-by-header
, vary-by-route
, vary-by-user
,и даже кастом vary-by
.
Посмотрите здесь и решите, использовать ли атрибут или вспомогательный тег кеша: https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/built-in/cache-tag-helper