2017-01-04 17 views
6

से पहले मेल खाते हैं मेरे पास एक वेब एप्लिकेशन है जो एमवीसी और वेबएपीआई 2 दोनों का उपयोग करता है। मैन्युअल रूप से कॉन्फ़िगर किए गए एमवीसी मार्गों से मेल खाने से पहले मैं हमेशा WebAPI2 विशेषता मार्गों के साथ मिलान करने के अनुरोधों के लिए अनुरोध करना चाहता हूं। RouteConfig.RegisterRoutes(RouteTable.Routes) पर कॉल करने से पहले मैंने configuration.MapHttpAttributeRoutes() पर कॉल करने का प्रयास किया है लेकिन यह काम नहीं कर रहा है।सुनिश्चित करें कि वेबएपीआई 2 मार्ग एमवीसी रूट्स

क्या वेबएपीआई 2 मार्गों को हमेशा प्राथमिकता सुनिश्चित करने का कोई तरीका है?

+7

वेब एपीआई मार्गों के लिए सम्मेलन "एपीआई" और यहां तक ​​कि एक संस्करण "v1" के साथ मार्ग को उपसर्ग करना है। यह उन्हें एमवीसी मार्गों से अलग कर देगा, तो आप आदेश के बारे में क्यों ख्याल रखते हैं जब तक आप एमवीसी और वेब एपीआई के बीच एक सम्मेलन साझा नहीं कर रहे हों? –

उत्तर

0

इसे जाने दें। एक नया नियंत्रक बनाने के लिए वीएस का प्रयोग करें। सुनिश्चित करें कि इसे कुछ नियंत्रक कहा जाता है, जहां कुछ आपके नियंत्रक का नाम है, इसे "नियंत्रक" में समाप्त होना चाहिए। सुनिश्चित करें कि आपके वर्ग को विरासत में ApiController रहो ...

public class someController : ApiController 
    { 
     [Route("api/test/{name}"), HttpGet] 
     public string Router(string name) 
     { 
      return "Your name is: " + name; 
     }   
    } 

इसके अलावा अपने Global.asax फ़ाइल में इस जोड़ें।

protected void Application_Start(object sender, EventArgs e) 
    { 
     GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear(); //This will remove XML serialization and return everything in JSON. 

     GlobalConfiguration.Configuration.MapHttpAttributeRoutes(); 
     GlobalConfiguration.Configuration.EnsureInitialized(); 
    } 

ऊपर में, एपीआई मार्ग HttpGet के लिए इंतज़ार कर रहा है, आप HttpPost भी उपयोग करते हैं, और FormDataCollection का उपयोग तैनात प्रपत्र डेटा प्राप्त करने के लिए कर सकते हैं। ध्यान दें कि आप {someparameter}

के साथ अपने एपीआई को पैरामीटर कैसे बना सकते हैं उपरोक्त काफी सरल है, और एपीआई नियंत्रक धारावाहिकता को लागू करने वाली अधिकांश वस्तुओं को क्रमबद्ध कर सकता है। यदि न्यूटन सॉफ्ट या कुछ नहीं उपयोग कर सकते हैं।

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