Iv been experimenting the great tool, Mvc MiniProfiler.
I don\'t want to litter all my view with lots of Step
commands, so I am wanting to use the profiler
You could define a global action filter:
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();
}
}
}
and register in Global.asax
:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new ProfileActionsAttribute());
}
and that's pretty much all.