2015-12-10 13 views
8

क्या सोच रहा था कि वेबएपी नियंत्रक को इंगित करने वाले एक से अधिक मार्ग होने पर संभव था?नियंत्रक पर एकाधिक मार्ग

उदाहरण के लिए मैं http://domain/calculate और http://domain/v2/calculate दोनों को एक ही नियंत्रक फ़ंक्शन पर इंगित करना चाहूंगा?

उत्तर

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 } 
      ); 
     } 
    } 

या

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

धन्यवाद @yyou। अगर मैं नियंत्रक स्तर पर ऐसा करना चाहता हूं तो क्या होगा? उदाहरण के लिए कंट्रोलर क्लास – Darren

+0

@ डाररेन I में 2 [रूट पेफिक्स] जोड़कर मैंने जवाब अपडेट किया है। – yyou

+0

धन्यवाद! ध्यान दिया कि एक से अधिक [रूट पेफिक्स] रखने का कोई तरीका नहीं है। Http://stackoverflow.com/questions/24953660/asp-net-web-api-multiple-routeprefix के माध्यम से एक और कामकाज मिला। आपका पहला समाधान मेरी स्थिति के लिए काम करता है। :) – Darren

संबंधित मुद्दे