本文主要是介绍AspNet web api 和mvc 过滤器差异,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近在维护老项目。定义个拦截器记录接口日志。但是发现不生效
最后发现因为继承的 ApiController不是Controller
只能用 System.Web.Http下的拦截器生效。所以现在总结归纳一下
Web Api: System.Web.Http.Filters.ActionFilterAttribute 继承该类
Mvc: System.Web.Mvc.ActionFilterAttribute 继承该类
Mvc:
提供4个重写方法
OnActionExecuting 执行前
OnActionExecuted 执行后
OnResultExecuting 返回前
OnResultExecuted 返回后
Web Api:
提供4个重写方法
OnActionExecuting 执行前 OnActionExecutingAsync 执行前(异步)
OnActionExecuted 执行后 OnActionExecutedAsync 执行后(异步)
根据自己需求重写方法。然后注入
注入有2种方法
1. Web Api 和 Mvc 通用的。直接打特性。作用域为打了特性的 Class / Action
我是新建了一个类继承基类避免全局+了。
2.全局注入Filter:
Mvc:
在FilterConfig下注入
Web Api:
在WebApiConfig下注入
这篇关于AspNet web api 和mvc 过滤器差异的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!