Це досить дивно, хоча відповідь залежить від мови / рамки, яку ви використовуєте, оскільки різні мови / рамки мають різні підходи MVC.
Як правило, ви не будете використовувати один контролер з іншого, оскільки:
Контролери зазвичай повертають результат типу, призначеного для використання в рамках MVC. Цей результат містить багато інформації, яка вам, як абоненту, не потрібна (наприклад, назва перегляду), і не завжди спрощує доступ до інформації, яка може вас зацікавити (у вашому випадку модель, якщо я гадаю правильно).
Контролерам непросто ініціалізувати бізнес-код, оскільки їм часто потрібна деяка кількість інформації про HTTP-запит та контекст. Очікується, що вся ця інформація буде передана у рамках МВК.
Що ще важливіше, якщо вам потрібна купа результатів пошуку в двох контролерах - один, який показує результати кінцевому користувачеві, інший, який генерує статистику, просто покладіть логіку пошуку у ваш бізнес-рівень (там, де він належить в першу чергу, до речі), і тримайте контролери якомога менше.
Роль контролера в MVC полягає в оркеструванні процесу:
- Отримайте відповідний вклад із запиту,
- Делегуйте валідаторам завдання перевірити / санітувати вхід,
- Викличте відповідні методи бізнес-рівня,
- Надайте структурі MVC отриману модель та вигляд.
Роль контролера - не мати справу з логікою бізнесу.
Після переходу коду до бізнес-рівня ви зможете надати пошуковий інтерфейс, який може бути повторно використаний чітким, простим способом, на відміну від одного контролера, який використовується від іншого.