Puedes devolver vistas como tal, así como imágenes, vídeos, etc. JSON no es la única opción, aunque para mí es la preferida; e incluso puedes enviar múltiples vistas en variables del mismo JSON.
Lo único que si mandas un HTML por Ajax, luego el javascript tendrá que inyectarlo en algún lugar de la vista que se le está mostrando al usuario. Con JQUERY puedes hacerlo con la función text() (tienes ejemplos en http://api.jquery.com/text/).
Por otro lado, desaconsejo traer vistas con Ajax e inyectarlas en HTML. Pues dificulta la lectura del código al estar las vistas en un String, el IDE no puede asociar los elementos correctamente y se hace más complicado escalarlo; vamos, que lo más posible es que haya que reescribirlo en ficheros de vistas dinámicas (templates de Laravel por ejemplo) en algún futuro.