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,
(编辑:十堰站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 我如何让Fiddler捕获我的MVC应用程序向我的ASP.NET Web API
- asp.net-mvc-3 – MVC3剃须刀:是否可以渲染传统的ASCX?
- 受asp.net MVC启发的更好的WebForms
- 为ASP.NET应用程序实现后台服务的最佳方法是什么?
- 在ASP.NET MVC4中是否可以将C#或VB函数标记为Javascript?
- asp.net中MVC借助Iframe实现无刷新上传文件实例
- asp.net代码中修改web.config节点的具体方法
- ASP.NET Core中调整HTTP请求大小的几种方法详解
- asp.net-mvc – 从控制器重定向初始化不工作
- asp.net-mvc – 尝试创建类型为’TypeNewsController’的控
- asp.net – 更改事件和IE8的jQuery问题
- asp.net 如何接收JSON作为MVC 5操作方法参数
- 在ASP.Net网站上使用WCF服务的教程?
- .net – CS0012:类型’System.Data.Linq.DataCo
- asp.net – 注册.NET 4.5 IIS 10 Windows 10
- asp.net-mvc – 具有ASP.NET MVC的多语言网站
- asp.net 根据汉字的拼音首字母搜索数据库(附 LIN
- 单元测试 – 如何在ASP MVC 5(Microsoft.AspNet.
- asp.net-mvc – 图像URL中的符号MVC导致一个潜在
- asp.net-mvc-3 – Orchard CMS DataAnnotations