2015-12-10 12 views

risposta

15
public static class WebApiConfig 
    { 
     public static void Register(HttpConfiguration config) 
     { 
      // Web API configuration and services 
      // Configure Web API to use only bearer token authentication. 
      config.SuppressDefaultHostAuthentication(); 
      config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); 

      // Web API routes 
      config.MapHttpAttributeRoutes(); 

      config.Routes.MapHttpRoute(
       name: "route1", 
       routeTemplate: "calculate", 
       defaults: new { controller = "Calculator", action = "Get" }); 

      config.Routes.MapHttpRoute(
       name: "route2", 
       routeTemplate: "v2/calculate", 
       defaults: new { controller = "Calculator", action = "Get" }); 

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

O

public class CalculatorController: ApiController 
{ 
    [Route("calculate")] 
    [Route("v2/calculate")] 
    public String Get() { 
     return "xxxx"; 
    } 
} 
+0

Grazie @yyou. Cosa succede se volevo farlo a livello di controller? Ad esempio aggiungendo 2 [RoutePrefix] alla classe Controller – Darren

+0

@Darren ho aggiornato la risposta. – yyou

+0

grazie! ho notato che non c'è modo di avere più di un [RoutePrefix]. Trovato un altro workaround tramite http://stackoverflow.com/questions/24953660/asp-net-web-api-multiple-routeprefix. La tua prima soluzione funziona per la mia situazione. :) – Darren

Problemi correlati