The simple fact is that each shop is its own and has its own personalities that prefer to code a certain way. If you search google code or gitbut for Repository.cs or RepositoryBase.cs you'll fine 100 different implementations of the same pattern! Don't even get me started on what people thing belongs in the ControllerBase.cs or not.
There is also a huge difference between different types of projects. Intranet style apps with MVC are completely different from large scale web applications. Service layers vs direct db queries, NoSql vs traditional SQL approaches, domain driven design vs persistence direct apps, FluentVal vs DataAnnotations.
My answer is there is no answer. Do what works for you, makes the most sense to the team your own and keeps your code clean and flexible.