Pengontrol API Web dapat dibuat dan dihosting di Aplikasi ASP.NET apa pun, bukan hanya aplikasi MVC. Dengan demikian, alasan yang jelas untuk membuat API Web adalah jika Anda tidak memiliki front-end MVC (mis. Layanan web klasik, RESTful yang diselenggarakan oleh perusahaan / organisasi Anda.)
Pengontrol MVC biasanya bergantung pada Kerangka MVC, jika Anda melihat templat default dan sebagian besar pekerjaan yang dilakukan oleh komunitas dan rekan Anda, Anda akan melihat bahwa hampir semua Pengendali MVC diimplementasikan dengan pandangan dalam pikiran.
Secara pribadi, saya menggunakan Pengontrol MVC ketika saya berniat menanggapi dengan Tampilan (), dan saya akan menggunakan API Web untuk apa pun yang tidak bergantung pada tampilan tertentu.
Ada peringatan, tentu saja, tetapi secara umum jika Anda tidak memerlukan perilaku Model Binding MVC, layanan Anda adalah data-sentris, dan operasi adalah Data-centric (misalnya operasi CRUD) maka Anda mungkin menginginkan 'Web API Controller 'Bukannya' Model-View Controller '. Sebaliknya, jika operasi Anda View-centric (mis. Mengantarkan halaman admin pengguna ke pengguna), atau Anda membutuhkan Pengikatan Model MVC untuk menghasilkan 'ajax partials' (sangat tidak mungkin), maka Anda akan menginginkan MVC Controller sebagai gantinya.
Secara pribadi, saya menggunakan pengontrol API Web untuk menggerakkan klien RESTful berbasis JSON, saya menggunakan pengontrol MVC untuk menangani perutean peramban dasar dan pengiriman SPA.