Como faço para usar VaryByParam com vários parâmetros?

103

Na ASP.NET MVC2 eu uso OutputCachee o VaryByParamatributo. Eu fiz funcionar bem com um único parâmetro, mas qual é a sintaxe correta quando tenho vários parâmetros no método?

[OutputCache(Duration=30, VaryByParam = "customerId"]
public ActionResult Index(int customerId)
{
//I've got this one under control, since it only has one parameter
}

[OutputCache(Duration=30, VaryByParam = "customerId"]
public ActionResult Index(int customerId, int languageId)
{
//What is the correct syntax for VaryByParam now that I have a second parameter?
}

Como faço para armazenar as páginas em cache usando os dois parâmetros? Devo inserir adicionar o atributo duas vezes? Ou escreva "customerId, languageId" como o valor ??

Frode Lillerud
fonte

Respostas:

200

Você pode usar * para todos os parâmetros ou uma lista separada por ponto e vírgula ( VaryByParam = "customerId;languageId").

Você também pode usar nenhum se não quiser que ele armazene em cache versões diferentes ....

Aqui está uma boa redação especificamente para MVC .

Kevin LaBranche
fonte
1

Você também pode usar *para incluir todos os parâmetros

 [OutputCache(Duration =9234556,VaryByParam = "*")]
Pooja Gautam
fonte
1
Bem-vindo ao Stack Overflow. Embora este código possa responder à pergunta, fornecer contexto adicional sobre por que e / ou como este código responde à pergunta melhora seu valor a longo prazo. Como responder
Elletlar