Tassadaque
Tassadaque

Reputation: 8199

Outputcache attribute on clientside with partial pages'

I a partial page creating the menu for application. I am calling the menu partial view using renderaction. I want to store this partial page on client side by doing this

[OutputCache(Duration=7200, Location  =OutputCacheLocation.Client, NoStore= true)]

but i am getting the following error

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

Any alternate to this

Upvotes: 4

Views: 8183

Answers (1)

Chaim Zonnenberg
Chaim Zonnenberg

Reputation: 1823

Client side caching is not possible for partials in MVC 3. The client browser just receives HTML, 'partials' only exist on the server side.

Why don't you use server side caching?

When the content of your menu is dependent on the user, you could add the relevant user information to the parameters of your child action. For example:

[OutputCache(Duration=7200, VaryByParam="*")]  
public PartialViewResult Menu(int userId)
{
   ...
}

Upvotes: 3

Related Questions