Кэширование ответов с использованием VaryByQueryKeys с аргументом словарной строки запроса
В моем приложении ASP.NET Core MVC есть метод контроллера с аргументом словаря, передаваемым через строку запроса запроса:
public async Task<IActionResult> Get([FromQuery] Dictionary<string, string> filterCriteria)
{
}
Приложение использует кэширование ответов с VaryByQueryKeys
возможность вернуть кешированные ответы для ранее обслуженных запросов. Это работает, как требуется для простых значений строки запроса, используя атрибут метода со следующим синтаксисом:[ResponseCache(VaryByQueryKeys = new[] { "argName" }, Duration = 20)]
Однако я хочу использовать его с аргументом словаря, показанным выше.
Можно ли его использовать с аргументом объекта, например, со словарем? Какой синтаксис использовать при указании списка ключей строки запроса вResponseCache
атрибут?
1 ответ
Оказывается, вы можете указать queryKeys для аргумента словаря, используя следующий синтаксис:
[ResponseCache(VaryByQueryKeys = new[] { "argName[key1]", "argName[key2]", ... }, Duration = 20)]