【问题标题】:ASP.NET Web API multiple RoutePrefixASP.NET Web API 多个 RoutePrefix
【发布时间】:2014-09-17 04:27:54
【问题描述】:

开源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");
   }
}

【问题讨论】:

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


【解决方案1】:

您可以向操作方法添加路由,也可以用“~”覆盖 RoutePrefix

示例:

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

注意这一行:[Route("~/ api/v1/{abc}/{xyz?}/Entity")]

【讨论】:

  • 为什么这是公认的答案?多个路由前缀可以帮助避免每个方法的多个 [Route] 属性,并大大有助于简化大型 api 控制器的维护
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-26
  • 1970-01-01
  • 2015-10-09
  • 1970-01-01
  • 2015-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多