asp.net-mvc – 对每个动作调用使用MVC Miniprofiler
发布时间:2020-12-15 23:03:22 所属栏目:asp.Net 来源:网络整理
导读:我一直在尝试伟大的工具,Mvc MiniProfiler. 我不想用大量的Step命令来抛弃我所有的观点,所以我想在每个动作调用中使用分析器.馊主意?这是我迄今为止所尝试过的 public abstract class BaseController : Controller { protected override void OnActionExecu
我一直在尝试伟大的工具,Mvc
MiniProfiler.
我不想用大量的Step命令来抛弃我所有的观点,所以我想在每个动作调用中使用分析器.馊主意?这是我迄今为止所尝试过的 public abstract class BaseController : Controller { protected override void OnActionExecuting(ActionExecutingContext filterContext) { var profiler = MiniProfiler.Current; using (profiler.Step("Action: "+filterContext.ActionDescriptor.ActionName)) { base.OnActionExecuting(filterContext); } } } 但我不认为这是在做我正在打算的事情?我想我需要在OnActionExecuting上启动分析器,并在OnResultExecuted上停止.如何做到这一点,考虑到profiler被设计为与using语句一起使用. 解决方法
您可以定义全局动作过滤器:
public class ProfileActionsAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { var profiler = MiniProfiler.Current; var step = profiler.Step("Action: " + filterContext.ActionDescriptor.ActionName); filterContext.HttpContext.Items["step"] = step; } public override void OnActionExecuted(ActionExecutedContext filterContext) { var step = filterContext.HttpContext.Items["step"] as IDisposable; if (step != null) { step.Dispose(); } } } 并在Global.asax注册: public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); filters.Add(new ProfileActionsAttribute()); } 这几乎都是. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – Web Api – 如何直接从OnActionExecuting过滤器
- asp.net-mvc – ASP.NET MVC 4在调试模式下捆绑js文件
- 如何配置ASP.NET MVC项目以使用Boo
- 如何配置ASP.NET / IIS管道
- asp.net – 有一种简单的方法可以从.NET用户控件中删除“ct
- asp.net – Text 4.5中的文本.NET 4.5中的Time属性在Code B
- asp.net-mvc – ASP.NET MVC – 如何获取一个动作的完整路径
- 如何清除Asp.Net按钮上所有文本框的值单击
- asp.net – 尝试为.mdf文件附加自动命名的数据库失败
- asp.net – 如何在控制器中获取路由URL?
推荐文章
站长推荐
热点阅读