asp.net-mvc – 使用输出缓存和其他动作过滤器
|
我已经在我的应用程序中添加了“输出缓存”,以实现一些简单的性能提升.但是,这些操作还需要在每个请求之后增加一个计数器(它是一个视图计数器),方法是点击一个Redis db. 起初,我想我可以调整操作过滤器执行的顺序,以确保视图被计数: public class CountersAttribute : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
//increment my counter all clever like
base.OnResultExecuted(filterContext);
}
}
但那没有办法显然OutputCacheAttribute的行为不像正常的动作过滤器.然后我尝试实现自定义输出缓存: public class OutputCacheWithCountersAttribute : OutputCacheAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
//straight to the source to get my headcount!
base.OnResultExecuted(filterContext);
}
}
不,也不行一旦缓存了一个动作,操作过滤器就会被完全忽略.游民. 那么,呃,有没有办法(没有实现一个自定义的输出缓存提供程序),以确保我的意见被正确地计数是干净和明智的? 解决方法OutputCacheAttribute有一些限制,并且有一个由Paul Hiles开发的名为 DonutOutputCache的自定义属性帮助克服了这些限制.它支持的一个重要功能就是可以使用一个动作过滤器,即使动作标记有缓存属性也可以一直调用. 例如您希望缓存一段时间为5秒的动作,同时您希望在每次使用LogThis过滤器接收到请求时记录,您可以通过以下方式实现该操作, [LogThis] [DonutOutputCache(Duration=5,Order=100)] public ActionResult Index() 从Paul,
(编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何设置特定于ASP.NET请求的log4net上下文属性?
- 在ASP.NET中下载文件的实现代码
- asp.net – WebForm_DoCallback定义
- asp.net – 为不同项目中的所有Web应用程序网页添加命名空间
- asp.net-mvc-4 – MVC 4 DropDownListFor错误 – 没有具有密
- asp.net-mvc – 如何忽略ASP.NET MVC 4中特定View文件夹或特
- asp.net – DirectoryServicesCOMException 80072020来自II
- .Net Web开发技术栈
- 防止双击asp.net按钮
- asp.net – 嵌套的web.config转换
- QueryString与ASP.NET MVC 6锚点标签助手
- asp.net-mvc – 为什么MVC4捆绑捆绑Knockout.js?
- 使用SharpZipLib压缩打包多个内存中的文件
- asp.net-mvc – 在EditorFor for child对象中使用
- asp.net – 转发器控件中的单选按钮列表
- asp.net – 在Application_BeginRequest中设置会
- asp.net – 在渲染到位图之前缩放WPF内容
- asp.net web大文件上传带进度条实例代码
- asp.net-mvc – ASP.NET MVC V2 – 好友类
- asp.net-mvc-2 – 如何在ASP.NET MVC2中为Html.L
