Если у вас есть сервисный уровень, и вы используете его таким образом, чтобы абстрагировать бизнес-логику от репозитория (как вы должны делать с сервисным уровнем), то нет, ваши контроллеры должны выполнять только вызовы сервисных методов. , Сервисный уровень будет связующим звеном с репо.
В дополнение к ответу Мейо: модель - это классы данных, которые будут передаваться по всему приложению (репо, сервис и пользовательский интерфейс / контроллеры), поэтому пользовательский интерфейс / веб-уровень должен «работать» с ними так же, как и с другими уровнями.
Я думаю, что если вы реализуете уровень обслуживания в контексте определения Фаулера и современного aspnet mvc адаптаций , то у вас должны быть разработаны действия контроллера как очень маленькие и легкие методы, вызывающие «мясистую» бизнес-логику из уровня обслуживания.
РЕДАКТИРОВАТЬ: Полагаю, я не совсем понял: я не говорю, что наличие сервисного уровня - единственный вариант, я просто пытаюсь ответить на часть вопроса, относящуюся к случай, когда вы делаете уровень обслуживания. Согласитесь, уровень обслуживания не всегда необходим, особенно для небольших проектов.