Jak używać VaryByParam z wieloma parametrami?

103

W ASP.NET MVC2 używam OutputCachei VaryByParamatrybutu. Mam go dobrze z jednym parametrem, ale jaka jest poprawna składnia, gdy mam kilka parametrów metody?

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

Jak ustawić buforowanie stron przy użyciu obu parametrów? Czy muszę dwukrotnie dodać atrybut? Lub wpisz „customerId, languageId” jako wartość?

Frode Lillerud
źródło

Odpowiedzi:

200

Możesz użyć znaku * dla wszystkich parametrów lub listy rozdzielanej średnikami ( VaryByParam = "customerId;languageId").

Możesz również użyć none, jeśli nie chcesz, aby buforował różne wersje ...

Oto fajny napis specjalnie dla MVC .

Kevin LaBranche
źródło
1

Możesz także użyć, *aby dołączyć wszystkie parametry

 [OutputCache(Duration =9234556,VaryByParam = "*")]
pooja gautam
źródło
1
Witamy w Stack Overflow. Chociaż ten kod może odpowiedzieć na pytanie, zapewnia dodatkowy kontekst dotyczący tego, dlaczego i / lub jak ten kod odpowiada, poprawia jego długoterminową wartość. Jak odpowiedzieć
Elletlar,