Pada dasarnya, Web APIpengontrol adalah MVCpengontrol, yang digunakan HttpMessageResponsesebagai jenis dasar dari responsnya, bukan ActionResponse. Mereka sama dalam banyak hal. Perbedaan utama antara tipe proyek adalah tipe MVC Applicationproyek menambahkan hal-hal spesifik web seperti default CSS, JavaScriptfile dan sumber daya lain yang diperlukan untuk situs web, yang tidak diperlukan untuk API.
MVC digunakan untuk membuat situs web. Dalam hal ini Controllersbiasanya mengembalikan View(yaitu respons HTML) ke permintaan browser. API Web di sisi lain biasanya dibuat untuk digunakan oleh aplikasi lain. Jika Anda ingin mengizinkan aplikasi lain untuk mengakses data / fungsionalitas Anda, Anda dapat membuat API Web untuk memfasilitasi akses ini. Misalnya, Facebook memiliki API untuk memungkinkan pengembang Aplikasi mengakses informasi tentang pengguna yang menggunakan Aplikasi. API Web tidak harus untuk konsumsi publik. Anda juga dapat membuat API untuk mendukung aplikasi Anda sendiri. Misalnya, kami membuat API Web untuk mendukung fungsionalitas AJAX dari situs web MVC kami.
Microsoft mengubah cara mereka menyajikan templat yang berbeda. Sekarang alih-alih menggunakan templat yang berbeda untuk jenis proyek yang berbeda, mereka mendorong pengembang untuk mencampur teknologi ASP.NET di dalam proyek yang sama sesuai kebutuhan. Microsoft menyebutnya vNext.
UPDATE: Untuk ASP.NET Core, Web API telah diintegrasikan ke dalam jenis proyek MVC 6 dan ApiControllerkelas tersebut dikonsolidasikan ke dalam Controllerkelas. Detail lebih lanjut di: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6