Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.
The controller is the central element of any operation you perform in ASP.NET MVC. The controller is responsible for getting posted data, executing the related action and then preparing and requesting the view. More often than not, these apparently simple steps originate a lot of code. Worse yet, similar code ends up being used in similar methods, and similar helper classes sprout up from nowhere.
ASP.NET MVC comes with the promise that it makes it easier for you to write cleaner and more testable code. For sure, ASP.NET MVC is based on some infrastructure ...