So the way MCV3 works is that you define what controller to call though routing. That controller is “myControllerName” + “Controller”.
Now that class is already in a folder called controllers. I don’t want that decoration on the end of my class names. It’s not really contributing anything.
I want to know how change that and understand more about what goes on inside MVC3.
The short answer is: don’t bother. This is configuration by convention (also called convention over configuration, CoC), and you will live a happier, healthier stress-free life if you just go with the flow, and let MVC do what it wants.
The longer answer is you inject a custom controller factory into the MVC pipeline to override the default one. A full description of the process can be found in this article but, essentially, you:
IControllerFactoryto do whatever you want.Application_Startevent, callControllerBuilder.Current.SetControllerFactoryto replace the default controller factory with your own.MVC is a highly extensible framework; although the default behavior of most components probably does what you need, you can almost always replace the built-in objects with your own. For other things you can override, see this list of the 13 extensibility points of MVC3.
Also, I forgot to mention initially, but if you are really interested in the guts of MVC, the entire framework is open source (its under the APL) and you can find it on codeplex.