I read on this post that they are using dependency injection to load repository instance on each mvc request.
I\'m not sure if I understand correctly but I currentl
The main idea behind DI is to force you to see the big picture instead of concrete implementations.
Your controller needs to get the user, but it shouldn't care about concrete implementation (does your repository fetch the user from the database, web service, xml file, etc. or does it use Linq2Sql, EntityFramework, Dapper or something else under the hood).
Your controller is dependent on that piece of code which can be injected in constructor, property or method, but it doesn't really care about concrete implementation.
DI removes the tight coupling between your controller and repository, allows you to write unit tests by mocking the repository, and you can easily change the concrete implementation of your repository (eg. use PetaPoco instead of EntityFramework) without touching the rest of the code.
You should also take a look at the SOLID principles: http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)