У меня возникла та же мысль, как только закончился первый разговор о Web API.Короче говоря, веб-API - это новый продукт из веб-стека MS .NET, основанный на WCF, OData и MVC, который обеспечивает единообразные средства для создания веб-API RESTful.На это есть много ресурсов, так что воспользуйтесь Google.
Теперь перейдем к вопросу ..
Проблема в том, что вы, конечно, можете заставить Web API возвращать HTML, JSON, XML и т. Д.- но здесь отсутствует часть представлений / шаблонов, предоставляемая Razor / ASPX / insertviewengine здесь.На самом деле это не «API».
Конечно, вы могли бы написать код на стороне клиента для вызова вашего Web API и выполнить на стороне клиента шаблон / пользовательский интерфейс с огромным количеством доступных плагинов.
Я почти уверен, что веб-API не способен возвращать шаблонный HTML так же, как веб-приложение ASP.NET MVC.
Так что, если вы хотите «повторно использовать»Для определенных частей вашего приложения (репозиторий, домен и т. д.), вероятно, было бы лучше обернуть вызовы в своего рода слой фасадов / служб и сделать так, чтобы и ваш веб-API, и отдельный веб-приложение ASP.NET MVC вызывали это для уменьшения кода.
Все, что вам нужно, это веб-приложение ASP.NET MVC, которое вызывает ваш домен и создает шаблон HTML, а также приложение ASP.NET Web API, которое вызывает ваш домен и возвращает различные ресурсы (JSON., XML и т. Д.).
Если у вас хорошо структурированное приложение, тогда эта форма абстракции не должна быть проблемой.