码迷,mamicode.com
首页 > Web开发 > 详细

asp.net mvc之过滤器

时间:2018-03-27 14:30:45      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:cut   oba   过滤   author   pre   应用   异常处理   turn   全局   

先看一段实例

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);

 

asp.net mvc之过滤器

标签:cut   oba   过滤   author   pre   应用   异常处理   turn   全局   

原文地址:https://www.cnblogs.com/shiyige-216/p/8656631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!