Reputation: 145880
All the examples for donut caching I've seen are just like this :
<%= Html.Substitute( c => DateTime.Now.ToString() )%>
Thats fine if I just want the date, but what other options are there?
I know there is a delegate 'MvcSubstitutionCallback' which has the following signature :
public delegate string MvcSubstitutionCallback(HttpContextBase httpContext);
but RenderAction
and RenderPartial
returns void so i cant just return them from the delegate method. How can I effectively use this callback for more complex situations.
I've looked at both of Phil Haacked's articles here and here, but neither seems to do exactly what I want.
Upvotes: 5
Views: 1472
Reputation: 28153
"Donut Caching" means using Response.WriteSubstitution method. If you look at MVC source you will see that System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial method is using Response.Output (HtmlHelper.cs, line 277 - last line in 'RenderPartialInternal' method) - so you need create your own html helpers for handling more complex situations.
Upvotes: 3