是否可以仅为使用路由属性的特定控制器添加MessageHandler?
如果它不包含某些标题,我想在管道中提前删除请求.我想要
提到:
>我无法在WebApiConfig中添加其他路由,我们必须使用控制器中的路由属性.
>我不想全局添加MessageHandler.
>它必须是MessageHandler(在管道的早期).我们有替代方案,但我们正在努力提高效率.
例如,我用以下RoutePrefix修饰了控制器:api / myapicontroller和一个带有Route(“”)的动作. (我知道这很奇怪,我们正在根据查询字符串选择不同的动作)
然后,我补充说
config.Routes.MapHttpRoute( name: "CustomRoute",routeTemplate: "api/myapicontroller/{id}",defaults: new { id = RouteParameter.Optional },constraints: null,handler: new myMessageHandler() );
如果我把这段代码放在config.MapHttpAttributeRoutes()之前; myMessageHandler正在执行,但我收到此消息:
No action was found on the controller ‘myapicontroller’ that matches
the request
如果我把config.MapHttpAttributeRoutes();首先,myMessageHandler永远不会执行,但调用myapicontroller中的my动作.