No creo que pertenezca al controlador, porque una vez que está incrustado allí no puede salir.
Creo que MVC debería tener otra capa inyectada en el medio: una capa de servicio que se asigna a casos de uso. Contiene lógica de negocios, sabe de unidades de trabajo y transacciones, y trata con objetos modelo y de persistencia para cumplir sus tareas.
El controlador tiene una referencia al servicio que necesita para cumplir con su caso de uso. Se preocupa por desasignar solicitudes en objetos con los que el servicio puede ocuparse, llama al servicio y ordena la respuesta para enviar de vuelta a la vista.
Con esta disposición, el servicio se puede usar solo incluso sin el par controlador/vista. Puede ser un objeto local o remoto, empaquetado e implementado de la forma que desee, que el controlador maneje.
El controlador ahora se vincula más estrechamente a la vista. Después de todo, es probable que el controlador que usará para un escritorio sea diferente al de una aplicación web.
Creo que este diseño está más orientado al servicio.
En mi opinión su pregunta no se encuentra un poco de contexto. ¿Quiere decir MVC como un patrón de aplicación amplia o como un patrón de interfaz de usuario? – Rookian