我如何在ASP.NET MVC中"缓存"以获取更多信息

Sim*_*ver 5 asp.net-mvc donut-caching

我见过的甜甜圈缓存的所有例子都是这样的:

 <%= Html.Substitute( c => DateTime.Now.ToString() )%>
Run Code Online (Sandbox Code Playgroud)

如果我只想要约会,那很好,但还有其他选择吗?

我知道有一个委托'MvcSubstitutionCallback',它有以下签名:

 public delegate string MvcSubstitutionCallback(HttpContextBase httpContext); 
Run Code Online (Sandbox Code Playgroud)

RenderActionRenderPartial返回void,所以我不能只是从委托方式回报他们.如何在更复杂的情况下有效地使用此回调.

我在这里这里都看过Phil Haacked的文章,但似乎都没有完全符合我的要求.

eu-*_*-ne 3

“甜甜圈缓存”是指使用 Response.WriteSubstitution 方法。如果您查看 MVC 源代码,您将看到 System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial 方法正在使用 Response.Output (HtmlHelper.cs,第 277 行 - 'RenderPartialInternal' 方法中的最后一行) - 因此您需要创建自己的用于处理更复杂情况的 html 帮助程序。