In ASP.NET MVC2 I use OutputCache
and the VaryByParam
attribute. I got it working fine with a single parameter, but what is the correct syntax when I have several parameters on the method?
[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? }
How do I get it to cache the pages using both parameters? Do I enter add the attribute twice? Or write "customerId, languageId" as the value??
Valid values for VaryByParam
are one of the following:
*
(asterisk), which varies by all parameters of the action method.none
(case-insensitive), which varies by no parameters of the action method.In your case, you'd want the first option:
[OutputCache(Duration = 30, VaryByParam = "*")] public ActionResult Index(int customerId, int languageId) { }
If, however, you had some params you want to vary by and some that you don't, then you'd use the third option:
[OutputCache(Duration = 30, VaryByParam = "customerId;languageId")] // foo is omitted public ActionResult Index(int customerId, int languageId, int foo) { }
Reference.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With