在我的Web API处理程序中,我需要获取与请求匹配的路由的名称.
@H_403_2@public class CurrentRequestMessageHandler : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,CancellationToken cancellationToken)
{
var route = request.GetRouteData().Route;
//now what?
return base.SendAsync(request,cancellationToken);
}
}
解决方法
目前,无法在Web API中检索路由的路由名称.您可以查看HttpRouteCollection源代码
here以获取更多详细信息.如果您的方案确实需要路由名称,则可以在路由的数据标记中插入路由名称. (请注意,当前属性路由不提供访问数据令牌的方法)
更新 – 2014年6月23日
通过属性路由领域的最新改进(5.2 RC),您可以执行以下操作,将路径名称插入到数据令牌中.
像这样访问它:reequest.GetRouteData().Route.DataTokens [ “ROUTE_NAME”]