When adding a new controller class to your ASP.NET MVC project, the Add New Scaffolded Item dialog is shown, and you have a choice between three different types of controllers to add:
MVC 5 Controller – Empty
MVC 5 Controller with read/write actions
MVC 5 Controller with views, using Entity Framework
Each of these items generates boilerplate code, which you can customize afterwards. However, let's assume that all our projects' controller classes need a constructor that accepts a parameter. Using the standard items, we would have to manually add the constructor for each controller in our project.
Fortunately, we are able to override the generated output for the controllers, because in essence, they are nothing more than T4 templates.
To customize the output of the MVC 5 Controller – Empty item, perform the following steps:
Right-click on your ASP.NET MVC project's name inside Visual Studio, and navigate to Add | New Item.
Navigate to Visual C#...