5

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

 <%= Html.Substitute( c => DateTime.Now.ToString() )%>

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

我知道有一个代表“MvcSubstitutionCallback”,其签名如下:

 public delegate string MvcSubstitutionCallback(HttpContextBase httpContext); 

但是RenderActionRenderPartial返回 void 所以我不能只从委托方法中返回它们。我怎样才能有效地使用这个回调来处理更复杂的情况。

我在这里这里查看了 Phil Haacked 的两篇文章,但似乎都没有完全符合我的要求。

4

4 回答 4

3

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

于 2009-05-15T17:03:33.423 回答
3

请注意,虽然这在 Mvc 1.0 中确实有效,但在 Mvc 2.0 中不再有效。见这里:http ://haacked.com/archive/2008/11/05/donut-caching-in-asp.net-mvc.aspx

于 2010-04-20T11:39:54.150 回答
1

这是针对 ASP.NET MVC 3 更新的文章:

http://dotnetslackers.com/articles/aspnet/Cache-Exploration-in-ASP-NET-MVC-3-Part-1.aspx

于 2011-01-14T21:43:07.237 回答
0

本文可能会有所帮助:http ://www.asp.net/Learn/mvc/tutorial-19-cs.aspx (在 ASP.NET MVC 中将动态内容添加到缓存页面)

于 2009-11-07T23:53:14.780 回答