zoukankan      html  css  js  c++  java
  • asp.net mvc之过滤器

    先看一段实例

    public class Log : FilterAttribute, IActionFilter
        {
            public void OnActionExecuted(ActionExecutedContext filterContext)
            {
                Console.WriteLine("log-after");
            }
    
            public void OnActionExecuting(ActionExecutingContext filterContext)
            {
                Console.WriteLine("log-before");
            }
        }
    public class HomeController : Contoller
        {
            [Log]
            public ActionResult Index()
            {
                return View();
            }
        }

    MVC有四种过滤器

    ActionFilter(方法过滤器):实现接口:[IActionFilter];在Action调用前和调用后执行

    ResultFilter(结果过滤器):实现接口:[IResultFilter];在Action Result调用完,跳转至view页面前/后执行

    AuthorizationFilter(授权过滤器):实现接口:[IauthorizationFilter];所有过滤器中最先执行的

    ExceptionFilter(异常处理过滤器):实现接口:[IExceptionFilter]:在控制器方法抛出异常时执行

    应用场景

    public class FilterConfig
        {
            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new HandleErrorAttribute());
                filters.Add(new MyAuthorAttribute());
                filters.Add(new ExceptionFilter());//异常过滤器
            }
        }
    public class MyAuthorAttribute : FilterAttribute, IAuthorizationFilter
        {
            public void OnAuthorization(AuthorizationContext filterContext)
            {  
    ///
            }
        }
    View Code

    Global实现全局

    //实现全局
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
  • 相关阅读:
    过滤器和拦截器的区别
    sql注入
    JavaScript学习
    Linux简单学习
    HTML DOM学习
    Java集合
    java 多线程学习
    常用的OO设计原则
    JAVA设计模式一策略模式(Strategy Pattern)
    201521123071《Java程序设计》第1周学习总结
  • 原文地址:https://www.cnblogs.com/shiyige-216/p/8656631.html
Copyright © 2011-2022 走看看