Вы на самом деле пытаетесь использовать контроллеры для доступа к данным.
Переместите поиск данных "GetCats" в свой бизнес-уровень (объект службы, репозиторий, что вам подходит).
Тогда CreateProduct должен быть там дважды (2 подписи). Один без параметров, в котором вы собираетесь вызывать «GetCats» из вашего бизнес-уровня и отправлять его в представление.
Другая реализация будет помечена атрибутом HttpPostAttribute и будет содержать в параметрах всю необходимую информацию для создания кота.
Вот и все. Просто и легко.