वेब एपीआई नियंत्रकों को किसी भी ASP.NET अनुप्रयोग में बनाया और होस्ट किया जा सकता है, न कि केवल MVC अनुप्रयोगों के लिए। इस प्रकार, एक वेब एपीआई बनाने का एक स्पष्ट कारण यह है कि यदि आपके पास MVC फ्रंट-एंड नहीं है (उदाहरण के लिए, आपकी कंपनी / संगठन द्वारा होस्ट की गई क्लासिक, Restful वेब-सेवाएँ।)
एमवीसी कंट्रोलर आमतौर पर एमवीसी फ्रेमवर्क पर निर्भर करते हैं, यदि आप डिफ़ॉल्ट टेम्प्लेट देखते हैं और समुदाय और आपके साथियों द्वारा किए गए अधिकांश काम आप देखेंगे कि लगभग सभी एमवीसी कंट्रोलर को व्यू को ध्यान में रखते हुए लागू किया जाता है।
निजी तौर पर, जब मैं किसी दृश्य () के साथ प्रतिक्रिया देने का इरादा रखता हूं, तो मैं एमवीसी कंट्रोलरों का उपयोग करता हूं, और मैं किसी ऐसी चीज के लिए वेब एपीआई का उपयोग करूंगा जो किसी विशेष दृश्य पर निर्भर नहीं है।
निश्चित रूप से कैवेट हैं, लेकिन आम तौर पर बोलना यदि आपको एमवीसी के मॉडल बाइंडिंग व्यवहार की आवश्यकता नहीं है, तो आपकी सेवा डेटा-केंद्रित है, और संचालन डेटा-केंद्रित (जैसे सीआरयूडी संचालन) हैं, तो आप संभवतः 'वेब एपीआई नियंत्रक' चाहते हैं। 'के बजाय' मॉडल-व्यू कंट्रोलर '। इसके विपरीत, यदि आपके ऑपरेशन दृश्य-केंद्रित हैं (जैसे उपयोगकर्ता को उपयोगकर्ता व्यवस्थापक पृष्ठ वितरित करना), या आपको 'ajax partials' (बहुत संभावना नहीं) उत्पन्न करने के लिए MVC के मॉडल बाइंडिंग की आवश्यकता है, तो आप इसके बजाय MVC नियंत्रक चाहते हैं।
व्यक्तिगत रूप से, मैं JSON- आधारित रेस्टफुल क्लाइंट को चलाने के लिए वेब एपीआई नियंत्रकों का उपयोग करता हूं, मैं मूल ब्राउज़र रूटिंग और एसपीए की डिलीवरी के लिए एमवीसी नियंत्रकों का उपयोग करता हूं।