Filters
Built-in Filter Types
Adding Custom Filters
using System.Diagnostics; using System.Web.Mvc; public class ExecutionTimeLoggerAttribute : ActionFilterAttribute { private Stopwatch stopwatch; public override void OnActionExecuting(ActionExecutingContext filterContext) { stopwatch = Stopwatch.StartNew(); } public override void OnActionExecuted(ActionExecutedContext filterContext) { stopwatch.Stop(); var executionTime = stopwatch.ElapsedMilliseconds; filterContext.HttpContext.Response.Headers.Add("X-ExecutionTime-ms", executionTime.ToString()); } }public class HomeController : Controller { [ExecutionTimeLogger] public ActionResult Index() { return View(); } }[ExecutionTimeLogger] public class HomeController : Controller { public ActionResult Index() { return View(); } }public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new ExecutionTimeLoggerAttribute()); // Other filters } }protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); }
Summary
Last updated