Comment utiliser VaryByParam avec plusieurs paramètres?

103

Dans ASP.NET MVC2, j'utilise OutputCacheet l' VaryByParamattribut. Je l'ai fait fonctionner correctement avec un seul paramètre, mais quelle est la syntaxe correcte lorsque j'ai plusieurs paramètres sur la méthode?

[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?
}

Comment puis-je l'obtenir pour mettre en cache les pages en utilisant les deux paramètres? Dois-je entrer ajouter l'attribut deux fois? Ou écrivez "customerId, languageId" comme valeur ??

Frode Lillerud
la source

Réponses:

200

Vous pouvez utiliser * pour tous les paramètres ou une liste séparée par des points-virgules ( VaryByParam = "customerId;languageId").

Vous pouvez également n'en utiliser aucun si vous ne souhaitez pas qu'il cache différentes versions ...

Voici une belle rédaction spécialement pour MVC .

Kevin LaBranche
la source
1

Vous pouvez également utiliser *pour inclure tous les paramètres

 [OutputCache(Duration =9234556,VaryByParam = "*")]
pooja gautam
la source
1
Bienvenue dans Stack Overflow. Bien que ce code puisse répondre à la question, fournir un contexte supplémentaire concernant la raison et / ou la manière dont ce code répond à la question améliore sa valeur à long terme. Comment répondre
Elletlar