.Net——过滤器

介绍

简单来说,过滤器会在某些特定条件下触发,并且被触发后执行过滤器内的代码。

类型

asp mvc支持的一共有4种过滤器,如下:

ActionFilter(方法过滤器):执行控制器方法和结果前、后调用(5.2.3版本新增了原本属于结果过滤器的两个方法)

ResultFilter(结果过滤器):执行控制器方法结果前、后调用

AuthorizationFilter(授权过滤器):最先调用

ExceptionFilter(异常过滤器):控制器方法抛出异常时调用

调用顺序

过滤器内实现的方法有不同的调用顺序,下面整理出来:

(方法)IActionFilter→OnActionExecuted——执行操作方法后调用

                                 →OnActionExecuting——执行操作方法前调用

                                 →OnResultExecuted——执行操作结果后调用

                                 →OnResultExecuting——执行操作结果前调用

(结果)IResultFilter→OnResultExecuted——执行操作结果后调用

                                 →OnResultExecutint——执行操作结果前调用

(授权)IAuthorizationFilter→OnAuthorization——最先调用

(异常)IExceptionFilter→OnException——控制器方法抛出异常时调用

自定义过滤器

我们当然可以自定义过滤器,只需要新建一个继承过滤器基类的类,然后实现对应过滤器的接口即可,下图是自定义异常过滤器的简单示例:

调用和普通过滤器一样:


posted @ 2019-09-15 09:46  老马-Max  阅读(427)  评论(0编辑  收藏  举报