2012-07-26 14 views
11

मैंने दोनों का उपयोग किया है और इसलिए मुझे आश्चर्य है, क्या वे वही काम करते हैं या अलग-अलग चीजें करते हैं? यदि यह उत्तरार्द्ध है, तो क्या अंतर है?क्या मुझे एक Asp.NET वेब-एपीआई रूट के लिए रूट पैरामीटर या यूआरएल पैरामीटर का उपयोग करना चाहिए?

मैंने विजुअल स्टूडियो एमवीसी 4 (आरसी) वेब एपीआई टेम्पलेट को देखकर इसे स्वयं जवाब देने का प्रयास किया, लेकिन दुख की बात यह है कि यह दोनों का उपयोग करता है, इसलिए मेरा भ्रम बनी हुई है। यहां बताया गया है टेम्पलेट है: वेब एपीआई मार्गों (.MapHttpRoute) और मानक MVC नियंत्रक मार्गों (.MapRoute) के लिए UrlParameter के लिए

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

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

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
} 

उत्तर

16

उपयोग RouteParameter। जैसा कि आप जानते हैं कि मानक एमवीसी और वेब एपीआई असेंबली और नेमस्पेस के मामले में 2 पूरी तरह से अलग एपीआई हैं, भले ही दोनों समान समान हों। उदाहरण के लिए आप अपने वेब एपीआई को कंसोल एप्लिकेशन में होस्ट कर सकते हैं, इसलिए आपको System.Web.Mvc असेंबली का संदर्भ भी नहीं मिलेगा और आप निश्चित रूप से इस मामले में RouteParameter का उपयोग करेंगे।

+0

आह .. मैंने यह भी ध्यान नहीं दिया कि उन्होंने मार्ग वस्तु पर विभिन्न विधियों को बुलाया था। लेकिन यह समझ में आता है। मुझे आश्चर्य है कि उन्होंने वेब एपीआई टेम्पलेट में विचार और एमवीसी सामग्री क्यों शामिल की है। आशा है कि वे जल्द ही एसपीए टेम्पलेट के साथ काम करेंगे। धन्यवाद! :) – Mithon

+0

इनमें से दो के बीच भी अलग व्यवहार है। यदि आप इस पोस्ट को चेक करते हैं: http://stackoverflow.com/questions/19043266/in-asp-net-webapi-does-routeparameter-optional-mean-optional-part-of-the-url UrlParameter.Optional की आवश्यकता नहीं होगी आप डिफ़ॉल्ट पैरामीटर निर्दिष्ट करने के लिए, जबकि रूट पैरामीटर। वैकल्पिक इच्छा। –

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