Question

I am beginner in MVC and I have a project to transform from MVC2 to the latest version of MVC. I read read some books on MVC 4, so I started to understand the main mechanisms.

However, when transforming my MVC 2 solution, I have a problem with an attribute: OutputCache.

By eg. I have multiple Actions like this (the attributes may vary):

[OutputCache(CacheProfile = "ProductImage")]
public ActionResult GetImage(Guid elementId, int imgtype)

in the Web.Config i have in the "caching>outputCacheSettings>outputCacheProfiles>":

<add name="ProductImage" duration="5" varyByParam="elementId,imgtype" />

and obtaining the following exception in output:

OutputCacheAttribute for child actions only supports Duration, VaryByCustom, and VaryByParam values. Please do not set CacheProfile, Location, NoStore, SqlDependency, VaryByContentEncoding, or VaryByHeader values for child actions.

As I understood, the problem appears only with the child actions.

  • Is there another way to have a cache profile in the latest MVC?
  • Is there a way to identify if the action is a child one in order to modify just that action?
Was it helpful?

Solution

Resolved installing MvcDonutCaching nuget and replacing [OutputCache with [DonutOutputCache...

See more about.

OTHER TIPS

Please read the answer this question, I believe it answers your question pretty well.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top