I can share my experience with AngularJS + MVC4 / Razor: we use Razor only for localization - therefore, only the Razor function "@somekeyword" is allowed. As a result, on the client side, we got localized AngularJS templates. This allows for maximum caching (even using CDNs).
As for MVC4, we use the ASP.NET Web API to send JSON data. We have a developer extension for sending HAL responses (Hypermedia).
This gives maximum isolation and the ability to change to another server, if necessary.
Valentyn Shybanov
source share