我见过的甜甜圈缓存的所有例子都是这样的:
<%= Html.Substitute( c => DateTime.Now.ToString() )%>
如果我只想要约会,那很好,但还有其他选择吗?
我知道有一个委托'MvcSubstitutionCallback',它有以下签名:
public delegate string MvcSubstitutionCallback(HttpContextBase httpContext);
但是RenderAction
和RenderPartial
返回void,所以我不能从委托方法返回它们。如何在更复杂的情况下有效地使用此回调。
答案 0 :(得分:3)
“Donut Caching”表示使用Response.WriteSubstitution方法。如果你看一下MVC源代码,你会看到System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial方法正在使用Response.Output(HtmlHelper.cs,第277行 - 'RenderPartialInternal'方法中的最后一行) - 所以你需要创建自己的用于处理更复杂情况的html助手。
答案 1 :(得分:3)
请注意,虽然这在Mvc 1.0中有效,但在Mvc 2.0中不再有效。 见这里:http://haacked.com/archive/2008/11/05/donut-caching-in-asp.net-mvc.aspx
答案 2 :(得分:1)
这是一篇针对ASP.NET MVC 3更新的文章:
http://dotnetslackers.com/articles/aspnet/Cache-Exploration-in-ASP-NET-MVC-3-Part-1.aspx
答案 3 :(得分:0)
本文可能会有所帮助:http://www.asp.net/Learn/mvc/tutorial-19-cs.aspx(将动态内容添加到ASP.NET MVC中的缓存页面)