Кэширование ответов с использованием 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)]
Другие вопросы по тегам