Контроллеры веб-API могут быть созданы и размещены в любом приложении ASP.NET, а не только в приложениях MVC. Таким образом, очевидной причиной создания веб-API является отсутствие у вас внешнего интерфейса MVC (например, классические веб-службы RESTful, размещенные вашей компанией / организацией).
Контроллеры MVC обычно полагаются на MVC Framework, если вы посмотрите на шаблоны по умолчанию и большую часть работы, выполняемой сообществом и вашими коллегами, вы заметите, что почти все контроллеры MVC реализованы с учетом представления.
Лично я использую контроллеры MVC, когда намереваюсь ответить с помощью View (), и я буду использовать веб-API для всего, что не зависит от конкретного представления.
Конечно, есть предостережения, но в целом, если вам не требуется поведение привязки модели для MVC, ваша служба ориентирована на данные, а операции - на основе данных (например, операции CRUD), тогда вам, вероятно, понадобится 'Контроллер веб-API 'вместо' Контроллер представления модели '. И наоборот, если ваши операции ориентированы на представление (например, доставляют пользователю страницу администратора) или вам требуется привязка модели MVC для генерации «частичных данных ajax» (что очень маловероятно), тогда вам потребуется контроллер MVC.
Лично я использую контроллеры веб-API для управления клиентами RESTful на основе JSON, я использую контроллеры MVC для обработки базовой маршрутизации браузера и доставки SPA.