Isso é bastante estranho, embora a resposta dependa da linguagem / estrutura usada, pois diferentes linguagens / estruturas têm abordagens diferentes do MVC.
Em geral, você não usará um controlador de outro, pois:
Os controladores geralmente retornam o resultado de um tipo destinado a ser usado pela estrutura MVC. Esse resultado contém muitas informações de que você, como chamador, não precisa (como o nome da visualização) e nem sempre facilita o acesso às informações de seu interesse (no seu caso, o modelo, se eu acho certo).
Os controladores não são fáceis de inicializar a partir do código comercial, pois geralmente precisam de alguma quantidade de informações sobre a solicitação HTTP e o contexto. Espera-se que todas essas informações sejam transmitidas pela estrutura MVC.
Mais importante, se você precisar de vários resultados de pesquisa em dois controladores - um que mostre os resultados para o usuário final, outro que gere estatísticas, basta colocar a lógica de pesquisa na sua camada de negócios (onde pertence em primeiro lugar, a propósito) e mantenha seus controladores o menor possível.
O papel de um controlador, no MVC, é orquestrar o processo:
- Obtenha a entrada relevante da solicitação,
- Delegar aos validadores a tarefa de validar / higienizar a entrada,
- Chame os métodos relevantes da camada de negócios,
- Forneça à estrutura MVC o modelo resultante e a visualização.
O papel de um controlador não é lidar com a lógica de negócios.
Depois que o código é movido para a camada de negócios, você pode fornecer uma interface de pesquisa que pode ser reutilizada de maneira clara e direta, diferente de um controlador sendo usado em outro.