In Visual Studio 2013 / ASP.NET MVC 5, How do I add a new Controller?
asp.net-mvc-5, visual-studio-2013
Solution
Updated this answer on Nov 14 2013, after the official VS2013 release to reflect changes in the final release -ds
For Visual Studio 2013 (Released Version)
Note: The final release brought back the "Add Controller" context menu.
Easy Way:
Right Click on the "Controllers" folder in your MVC project
Add > Controller...
Choose a Controller Template. (I prefer MVC 5 Controller Empty)
Alternate Way:
Right Click on the "Controllers" folder in your MVC project
Add > New Scaffolded Item...
Choose a Controller Template
This method also displays non-controller templates such as views, areas, and more WebAPI features making the list longer.
For Visual Studio 2013 (Preview and Release Candidate)
Note: VS 2013 Preview and RC did not include the "Add Controller" context menu.
To create a new controller with Visual Studio 2013 + ASP.NET MVC 5:
- Right click on the Controllers folder.
- Click Add > Scaffold...
- Choose one of the "MVC 5 Controller - ???" types.
??? can be "Empty" meaning Controller class only with no pre-built views... all the way to "MVC 5 Controller with read/write actions and views, using Entity Framework" which produces a Controller class with multiple methods and associated View .cshtml files.
In prior versions of Visual Studio + MVC, "Add Controller" initiated a configurable scaffold wizard. The preview versions of 2013 instead displays a list of pre-built scaffolding templates.
Problem
In ASP.NET MVC5 + VS 2013 (preview at time of writing), how do I add a new Controller? In past versions (VS 2012 / MVC 4), I was able to right click on the Controllers folder and click "Add Controller". That option is no longer there. Where did it go? (Side note: I am not certain if MVC 5 is where the change takes place or if it a change in the VS 2013 tooling as I updated both. I suspect it is with the new ASP.NET tooling for VS 2013)