拦截对象到达控制器
本文关键字:控制器 对象 | 更新日期: 2023-09-27 17:55:06
我有一个控制器GET/POST方法,我想知道是否有可能在到达控制器上的POST方法之前拦截对象。
这是我对Controller的方法:
[Route("{type}")]
[HttpPost]
public HttpResponseMessage Save(string type, [FromBody] Message message)
{
....
return Request.CreateResponse((HttpStatusCode)200, result);
}
是否有可能在Save()方法被调用之前拦截对象Message ?我已经创建了一个DelegatingHandler,但它不起作用。
我是这样添加路由的:
IHttpRoute route = GlobalConfiguration.Configuration.Routes.CreateRoute(
routeTemplate: "api/message/{type}",
defaults: new HttpRouteValueDictionary("route"),
constraints: null,
dataTokens: null,
handler: new ValidationHandler());
GlobalConfiguration.Configuration.Routes.Add("MyRoute", route);
你知道怎么做吗?
如果您已经创建了您的DelegatingHandler
,您将需要按照以下方式配置它:
GlobalConfiguration.Configuration
.MessageHandlers
.Add(new FooHandler());
是的,它可以在请求发出后在web代理中完成或者您也可以在管道中添加一些中间件。但是,如果我理解正确的话,你也可以简单地没有处理程序,通过自定义绑定来改变你的Message
对象。
如何在MVC/WebAPI的动作签名中绑定自定义对象