Asp.net mvc MVCDonutCaching-当父对象未缓存时,子操作出现问题

Asp.net mvc MVCDonutCaching-当父对象未缓存时,子操作出现问题,asp.net-mvc,donut-caching,Asp.net Mvc,Donut Caching,我使用Nuget的awesom包来缓存整个页面,同时保留某些部分未缓存。过程很简单,一切正常: 我的发言如下: [DonutOutputCache(CacheProfile = "FiveMins")] public ActionResult Index() { return View(); } 对于我的页面部分,我不希望缓存,我正在执行以下操作: @Html.Action("HeaderLinks","Home", true) 这是正常的,实际上页面的大部分是缓存的,但是我的标题链

我使用Nuget的awesom包来缓存整个页面,同时保留某些部分未缓存。过程很简单,一切正常:

我的发言如下:

[DonutOutputCache(CacheProfile = "FiveMins")]
public ActionResult Index()
{
  return View();
}
对于我的页面部分,我不希望缓存,我正在执行以下操作:

  @Html.Action("HeaderLinks","Home", true)
这是正常的,实际上页面的大部分是缓存的,但是我的标题链接——如果用户没有登录,则显示登录按钮的上下文敏感链接,如果用户登录,则显示用户名,等等——没有缓存。到目前为止一切正常

我遇到的问题是,HeaderLink属于主控/布局页面,并且被广泛使用,而不管操作是否设置了DonutOutputCache属性。当我创建另一个动作时,让我们称之为“关于我们”,没有甜甜圈缓存属性,我根本看不到标题链接

public ActionResult AboutUs()
{
  return View();
}
查看源代码,我看到以下内容

<!--Donut#
<ActionSettings xmlns="http://schemas.datacontract.org/2004/07/DevTrends.MvcDonutCaching" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<ActionName>HeaderLinks</ActionName>
<ControllerName>Home</ControllerName>
<RouteValues xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<a:KeyValueOfstringanyType>
<a:Key>Area</a:Key>
<a:Value i:type="b:string" xmlns:b="http://www.w3.org/2001/XMLSchema"/>
</a:KeyValueOfstringanyType>
</RouteValues>
</ActionSettings>
#-->

显然,在上面的例子中,它是由甜甜圈缓存库生成的——链接部分被一些注释过的XML所取代

简而言之,我的问题是:无论父操作是否使用甜甜圈缓存,该库是否可以重用相同的子操作


如果您有任何帮助,我们将不胜感激。

目前,您需要将Html.Action与DonutOutputCache操作过滤器一起使用,以获得要渲染的圆环孔。如果不使用DonutOutputCache而使用Html.Action,您将看到上面概述的占位符注释

但这是一个疏忽,将在下一版本中解决