根据此文档https://docs.microsoft.com/en-ca/aspnet/core/mvc/controllers/filters#result-filters,结果过滤器将在操作过滤器之后执行。
我的问题:鉴于我不想处理异常,实现ActionFilter的OnActionExecuted和ResultFilter的OnResultExecuting有什么区别?似乎ActionFilter允许我处理异常并跳过ExceptionFilter。
文档中的示例尚不清楚应如何在“操作”过滤器或“结果”过滤器之间进行选择。
当“结果”过滤器比“操作”过滤器更可取时,请举个例子吗?
动作过滤器实现IActionFilter
或IAsyncActionFilter
接口,它们的执行围绕着动作方法的执行。动作过滤器包含在执行控制器动作之前和之后执行的逻辑。
结果过滤器实现IResultFilter
或IAsyncResultFilter
接口,它们的执行围绕动作结果的执行。结果过滤器包含在执行查看结果之前和之后执行的逻辑。
ActionFilter的OnActionExecuted和ResultFilter的OnResultExecuting
ActionFilter的OnActionExecuted:在调用action方法之后立即调用它。(例如,在操作执行视图数据修改后做一些逻辑)
ResultFilter的OnResultExecuting:它在执行结果之前被调用;这意味着在渲染视图之前。(例如-在修改视图结果之前做一些逻辑。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句