Has*_*jmi 5 asp.net-mvc action-filter asp.net-web-api
如您所知,MVC 和 Web api 操作过滤器为其过滤器使用不同的命名空间:
在网络 API 中:
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
HttpActionExecutedContext 位于system.web.http.filters
在MVC中:
public override void OnActionExecuted(ActionExecutedContext actionExecutedContext)
Run Code Online (Sandbox Code Playgroud)
ActionExecutedContext 位于system.web.mvc
我希望在 Web api 或 MVC 时为我的所有控制器提供一个过滤器。
那么我该如何解决这个问题呢?
MVC 和 Web API 是不同的框架,它们的交汇点是托管部分。此时,MVC 和 Web API 可以通过 Web 托管(IIS + ASP.NET 管道),因此您可以编写 IIS 模块来执行您想要的操作。
OWIN 中间件可能是更好的选择,但不幸的是 MVC 目前无法由 OWIN 托管。但是,您可以使用阶段标记在 ASP.NET 管道中您想要的阶段运行 OWIN 中间件,但据我所知,PipelineStage
枚举是PreHandlerExecute
最后一个阶段。这意味着你可以做类似OnActionExecuting
但不可以的事情OnActionExecuted
。
归档时间: |
|
查看次数: |
1630 次 |
最近记录: |