Контроллеры принадлежат к веб-слою, так как они обрабатывают связанные с Интернетом действия, такие как маршрутизация, обработка входящих http-запросов и т. Д.
Спросите себя, для чего предназначен контроллер, а затем посмотрите, на каком уровне эти действия имеют смысл ... имеет ли смысл обрабатывать входящие http-запросы на уровне данных? нет, уровень данных должен быть связан с вводом / выводом данных.
Имеет ли смысл обработку входящих запросов http на уровне бизнес-логики? нет, бизнес-логика должна содержать логику, необходимую только для выполнения бизнес-логики / предметной логики того, что вы строите.
Имеет ли смысл обрабатывать входящие http-запросы на веб-уровне? Ну, да, http-запросы являются частью сети, какой мы ее знаем.
В сети очень много информации об архитектуре n-уровня (aka onion). Здесь - это один пример, который я быстро выкопал, и который более детален, чем мой ответ выше