我有以下路线:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{service_name}/{controller}/{id}",
defaults: new { service_name = "identity", id = RouteParameter.Optional }
);
我希望此路由仅适用于以下模式(服务名称应始终为标识):
api/identity/{anyController}/{id}
现在我可以通过简单地将路线模板更改为
来实现这一目标routeTemplate: "api/identity/{controller}/{id}",
然后我将无法阅读" service_name"来自Request.GetRouteData();
,因为它没有命名参数。
是否有更简单的方法来执行此操作,而不是创建一个ActionFilter,它将过滤所有服务名称不是" Identity"在这种情况下。
答案 0 :(得分:2)
您可以在受影响的方法上方添加Route
属性。例如,
[Route("api/identity/{controller}/{id}", Order = 1)]
[HttpGet]
public IHttpActionResult DoSomethingHere(int id)
{
// Do some magic here
}