我正在使用Nuget的awesom
MVCDonutCaching软件包来缓存整个页面,同时保留某些未缓存的部分.这个过程很简单,一切正常:
我缓存如下:
[DonutOutputCache(CacheProfile = "FiveMins")] public ActionResult Index() { return View(); }
对于我的页面部分,我不想缓存我正在执行以下操作:
@Html.Action("HeaderLinks","Home",true)
这应该工作,实际上页面的大部分是缓存但我的标题链接 – 上下文敏感链接显示登录按钮,如果用户没有登录,他们的用户名,如果他们是,等等 – 没有缓存.到目前为止一切正常.
我遇到的问题是headerlinks属于主/布局页面并且全面使用 – 无论Action是否设置了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,您将看到上面概述的占位符注释.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。