Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3608600
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T21:31:17+00:00 2026-05-18T21:31:17+00:00

I am using Razor view engine in ASP.Net MVC 3 RC 2. This is

  • 0

I am using Razor view engine in ASP.Net MVC 3 RC 2. This is part of my view city.cshtml

(drastically simplified code for the sake of simplicity in example)

<!-- in city.cshtml -->
<div class="list">
@foreach(var product in SQL.GetProducts(Model.City) )
{
  <div class="product">
    <div>@product.Name</div>
    <div class="category">
    @foreach(var category in SQL.GetCategories(product.ID) )
    {
      <a href="@category.Url">@category.Name</a> » 
    }
    </div>
  </div>
}
</div>

I want to cache this part of my output using OutputCache attribute, so I created an action ProductList with OutputCache attribute enabled

<!-- in city.cshtml -->
<div class="list">
  @Html.Action("ProductList", new { City = Model.City })
</div>

and I created the view in ProductList.cshtml as below

<!-- in ProductList.cshtml -->
@foreach(var product in Model.Products )
{
  <div class="product">
    <div>@product.Name</div>
    <div class="category">
    @foreach(var category in SQL.GetCategories(product.ID) ) 
    {
      <a href="@category.Url">@category.Name</a> » 
    }
    </div>
  </div>
}

but I still need to cache the category path output on each product. so I created an action CategoryPath with OutputCache attribute enabled

<!-- in ProductList.cshtml -->
@foreach(var product in Model.Products ){
  <div class="product">
    <div>@product.Name</div>
    <div class="category">
      @Html.Action("CategoryPath", new { ProductID = product.ID })
    </div>
  </div>
}

But apparently this is not allowed. I got this error:

OutputCacheAttribute is not allowed on
child actions which are children of an
already cached child action.

I believe they have a good reason why they need to disallow this. I really want this kind of nested Output Caching.

Any idea for a workaround?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-18T21:31:18+00:00Added an answer on May 18, 2026 at 9:31 pm

    In you SQL.GetCategories method you can get all categories and cache it if not already in cache. And filter categories by productID using LINQ TO OBJECTS. In this way you do not hit db every time you need to find categories of a product.

    Now you only use OutputCache on ProductList, and you have a pretty decent performing (partial)view.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Here's the situation: ASP.NET MVC 3 application using Razor as the view engine. Works
I am using Visual Studio 2010 / ASP.net MVC 3 with the Razor View
I've created a web site using Asp.Net and the Razor view engine (which is
Using preview 4 of ASP.NET MVC Code like: <%= Html.CheckBox( myCheckBox, Click Here, True,
I'm using the Razor view engine with MVC 3 and I'm trying to make
Using ASP.NET MVC there are situations (such as form submission) that may require a
I am building an ASP.NET MVC web application and I'm using jQuery for some
I would like to generate emails using the Razor view engine. From what I've
I'm working on an MVC3 web application using the razor view engine. I'm looking
I'm making an extremely simple CMS in ASP.NET MVC 3 (just to learn it)

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.