Кэширование ответов с использованием VaryByQueryKeys с аргументом строки запроса словаря - PullRequest
0 голосов
/ 02 марта 2020

My ASP. NET В ядре MVC приложение имеет метод контроллера с аргументом словаря, передаваемый через строку запроса:

public async Task<IActionResult> Get([FromQuery] Dictionary<string, string> filterCriteria)
{
}

Приложение использует кэширование ответов с VaryByQueryKeys возможность возврата кэшированных ответов на запросы, которые ранее были обслужены. Это работает так, как требуется для простых значений строки запроса, используя атрибут метода со следующим синтаксисом: [ResponseCache(VaryByQueryKeys = new[] { "argName" }, Duration = 20)]

Однако я хочу использовать его с аргументом словаря, показанным выше.

Может это будет использоваться с аргументом объекта как словарь? Какой синтаксис использовать при указании списка ключей строки запроса в атрибуте ResponseCache?

1 Ответ

0 голосов
/ 02 марта 2020

Оказывается, вы можете указать queryKeys для аргумента словаря, используя следующий синтаксис:

[ResponseCache(VaryByQueryKeys = new[] { "argName[key1]", "argName[key2]", ... }, Duration = 20)]
...