ASP.NET Web API多个RoutePrefix

时间:2014-07-25 10:30:18

标签: asp.net-web-api2 asp.net-web-api-routing attributerouting

开源Attribute Routing允许有多个路由前缀。 为什么ASP.NET Web API 2.0不允许有多个RoutePrefix()。

[RoutePrefix("api/v1/{abc}/Entity")]
[RoutePrefix("api/v1/{abc}/{xyz?}/Entity")]
public class MyApiController : ApiController
{
   [Route("")]
   public IHttpResult Get()
   {
      return Ok("Hello World");
   }
}

1 个答案:

答案 0 :(得分:37)

您可以向操作方法添加路径,同时使用“〜”覆盖RoutePrefix

示例:

[RoutePrefix("api/v1/{abc}/Entity")]
public class MyApiController : ApiController
{
   [Route("")]
   [Route("~/api/v1/{abc}/{xyz?}/Entity")]
   public IHttpResult Get()
   {
      return Ok("Hello World");
   }
}

注意这一行: [路线(“〜/ api / v1 / {abc} / {xyz?} /实体”)]