我的 Web API 2 项目中有一个消息处理程序,它将 url 更改为不同的路径。如网址"root/controller/somevalue/detials"
将改为"root/controller/2/details"
。其中"somevalue"或 2 是操作方法的参数。
我在调用之前放置了消息处理程序注册代码 config.MapHttpAttributeRoutes();
消息处理程序注册为 config.MessageHandlers.Add(new MyHandler());
对于正常的路由映射,它工作正常。但是,如果我启用基于属性的路由,则会调用消息处理程序并更改 url,但操作方法使用相同的"somevalue"而不是"2"命中。
这是怎么回事?
如果您使用的是 RouteAttribute
,那么您可以使用这样的 Route 值来捕获某个值:
Route["details/{somevalue}"]
public IHttpActionResult MyCustiomApiMethod(string somevalue)
{
//return
}