1. 结果过滤器 IResultFilter
结果过滤器:这个过滤器的作用和操作过滤器非常相似,主要其作用范围是有微小区别的,结果过滤器是在操作即将返回结果到客户端之前(before)或者之后(after)执行干预,比如你可以在返回结果之后(after)去渲染视图
2. 资源过滤器 IResourceFilter
资源过滤器:但请求进入,通过授权过滤器后,接下来将执行资源过滤器(如果有定义),使用资源过滤器甚至可以改变绑定模型,还可以在资源过滤器中实现缓存以提高性能
例子:
在 CustomActionFilterAttribute.cs 继续添加 CustomResourceFilterAttribute 和 CustomControllerFilterAttribute
修改 FilterController.cs 的 Infomation 特性
生成编译 -> 浏览 /filter/Infomation
这里可以可注意到三点:
1.OnResourceExecuted 比 全局Action 还先输出
2.OnResultExecuted 和 OnResultExecuting 在 全局Action 结束后 才处理
3.OnResultExecuted 之后才执行 OnResourceExecuting
这里就很清晰的可以看到过滤器的循序,就可以很好的知道项目业务中需要在哪个地方处理
网友评论