If your repository layer is properly abstracted (eg, the service layer and controller can only access the repository via interfaces), then:
- Having the controller access the repository directly simplifies that part of the code as it removes an unnecessary level of abstraction, but
- You are then coupling the controllers to both the service and repository layers, which can increase complexity, and
- You may be creating a maintenance problem should you need to add business logic at that point in the future and thus would have to "re-plumb" that part of the code, but
- The YAGNI ("You ain't gunna need it") principle comes in to play here, so it's unlikely you should allow such potential future issues to affect the design now.
On balance, I'd stick with feeding everything through the service layer. But that's pure opinion; accessing the repository directly is equally valid.
If your repository layer isn't properly abstracted (ie the service layer deals directly with concrete repository/database classes), then:
- Fix it!
- Do not have the controllers go anywhere near the repository until you have fixed it, as this path leads to testing hell.