路由前缀可以被覆盖

Route Prefix can be overridden

我有一个基本控制器,它执行很少 post 并获得优惠,下面我给出了 get

的示例结构
[AxAuthorization(Resource = "Offers")]
[RoutePrefix("api/offer/v2/offers")]
public class OffersV2Controller : ApiController
{
    [HttpGet]
    [Route("{id}", Name = "OffersGetById")]
    public async Task<HttpResponseMessage> GetById([FromUri(Name = "id")]string OfferId)
    {
             ----
             -----
      }
}

我们通过 api/offer/v2/offers/id 调用此 get 方法,但其他一些使用我们服务的消费者喜欢调用 api/v2/offers/id,有什么方法可以覆盖它吗?上面的代码是我们不想修改路由前缀的产品生成的代码。

[Route("api/v2/offer/test")]
[Route("api/offer/v2/test")]

     config.MapHttpAttributeRoutes();
        config.Routes.MapHttpRoute(
            name: "route1",
            routeTemplate: "test/v2/Values",
            defaults: new { controller = "Values", action = "Get" });
        config.Routes.MapHttpRoute(
            name: "route2",
            routeTemplate: "v2/test/Values",
            defaults: new { controller = "Values", action = "Get" });


        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

在webapiConfig.cs