cng*_*cng 10 asp.net-web-api attributerouting message-handlers
有谁知道消息处理程序是否可以与Web API 2.x中的属性路由同时工作?我有一个自定义消息处理程序使用传统路由工作,然后添加属性路由后,它停止工作.我不确定它是否不受支持,或者我是否配置错误.任何帮助是极大的赞赏.
1)在属性路由之前
--- WebApiConfig.cs code snippet (simplified)----
config.Routes.MapHttpRoute(
name:"DefaultApi",
routeTemplate: "api/{controller}",
defaults: null,
constraints: null,
handler: my-message-handler-object
);
--- MyController.cs code snippet (simplified)----
public class MyController : ApiController
{
[HttpGet]
public IHttpActionResult CheckInServices(...)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
2)属性路由后
--- WebApiConfig.cs code snippet (simplified)----
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name:"DefaultApi",
routeTemplate:"api/vendor",
defaults: new { controller = "Users" },
constraints: null,
handler: my-message-handler-object
);
}
--- MyController.cs code snippet (simplified)----
[RoutePrefix("api/vendor/{vendorID:long}/service")]
public class MyController : ApiController
{
[HttpPost]
[Route("{serviceID:long}")]
public IHttpActionResult CheckInServices(...)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢,
科迪
小智 0
全局消息处理程序将起作用 - 只需在启动时进行设置即可。
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MessageHandlers.Add(new YourAuthenticationHandler());
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定每个路由消息处理程序是否与属性路由一起使用。
| 归档时间: |
|
| 查看次数: |
1321 次 |
| 最近记录: |