Только что закончили проект на связке ASP.NET MVC + WebApi + AngularJS. Получилось очень клёво. Логика такая: MVC-котнтроллеры возвращают только чистую вьюшку с разметкой для AngularJS, тот обращается к WebApi, получает в JSON данные, ну и мапит на вьюшку. И при изменении данных шлёт их в JSON обратно к WebApi.
Плюсы:
1) Чёткое разделение на слои логики. WebApi-контроллеры покрываются юнит-тестами.
2) Чёткое разделение работы клиентских и серверных разрабов. До разработчика клиентского кода доходят только интерфейсы моделей, причём уже гарантированно работающие, т.к. проверяются тестами.
3) Внешние сервисы (с которыми мы интегрируемся или, в перспективе, мобильное приложение) интегрируются с тем же api, с которым работает сам сайт.
Минусы:
1) Требуется дописать приличное количество клиентской логики для корректного отображения ошибок валидации.
2) Большие страницы (а в нашем конкретном проекте на одной странице отображалось несколько вьюшек с разными api-контроллерами) подгружаются достаточно долго: сначала отображается пустая страница, затем первая часть, спустя пару секунд ещё и т.п. Но это больше вопрос оптимизации чем AngularJS