拦截对象到达Controller
Intercept object arrives Controller
我有一个带有 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);
有什么办法吗?
是的,可以在发出请求后在 Web 代理中完成
或者您也可以在管道中添加一些中间件。但是,如果我理解正确,您也可以在没有处理程序的情况下通过自定义活页夹简单地完成它,这将更改您的 Message
对象。
How to bind to custom objects in action signatures in MVC/WebAPI
如果您已经创建了 DelegatingHandler
,则需要按如下方式配置它:
GlobalConfiguration.Configuration
.MessageHandlers
.Add(new FooHandler());
我有一个带有 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);
有什么办法吗?
是的,可以在发出请求后在 Web 代理中完成
或者您也可以在管道中添加一些中间件。但是,如果我理解正确,您也可以在没有处理程序的情况下通过自定义活页夹简单地完成它,这将更改您的 Message
对象。
How to bind to custom objects in action signatures in MVC/WebAPI
如果您已经创建了 DelegatingHandler
,则需要按如下方式配置它:
GlobalConfiguration.Configuration
.MessageHandlers
.Add(new FooHandler());