I'm using ASP.NET MVC5 and VS2013
I've tried to copy CodeTemplates folder from
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\VWDExpress\ItemTemplates\CSharp\Web\MVC 4\CodeTemplates
with subfolders "AddController", "AddView" and T4 templates inside them, then I modified some templates, but nothing happened when I tried to add View nor Controller..
To add a scaffold, right-click on Controllers folder in the Solution Explorer and select Add → New Scaffolded Item. It will display the Add Scaffold dialog. Select MVC 5 Controller with views, using Entity Framework in the middle pane and click 'Add' button, which will display the Add Controller dialog.
Scaffold templates are used to generate code for basic CRUD operations within your ASP.NET MVC applications against your database with the help Entity Framework. These templates use the Visual Studio T4 templating system to generate views for basic CRUD operations with the help of Entity Framework.
Scaffolding is used to define the code-generation framework used in web applications. It uses T4 templates to generate basic controllers and views for the models.
First, it looks like you have Visual Studio 2013 and 2012 both installed on your computer. I tried looking up the path you provided, I couldn't find it. On your path it looks like you're trying to use MVC4 templates. Here is my path:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\
Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates
Below is how I customized my scaffold template for the BaseController:
Create folder called "CodeTemplates" directly in the project folder.
Go to below path, find MvcControllerWithActions folder copy all to folder "CodeTemplates"
C:\Program Files (x86)\Microsoft Visual Studio 12.0\
Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates
Go to CodeTemplates -> MvcControllerWithActions in your project.
There are two files, Controller.cs.t4
and Controller.vb.t4
in MvcControllerWithActions, if you used C#, you can delete Controller.vb.t4
.
Open the Controller.cs.t4
file, modify the Controller name to BaseController, like below:
public class <#= ControllerName #> : BaseController
{
}
Now, when you try to create MVC5 Controller using "add new scaffold item", it'll use the template you customized.
Hope it helps.
For Visual Studio 2017 MVC5 T4 templates are located in C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates\MvcView
MVC4 and MVC5 templates are located in different locations. While MVC4 templates are located in the folder you've given, MVC5 templates are located in this folder:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates
What you need to do for customizing is to create a folder named CodeTemplates
your project folder, and copy the templates you want to customize to the CodeTemplates
folder.
You'll need to copy MvcView
and MvcControllerWithContext
folders in order to use with MVC 5 Controller with view, using EntityFramework command.
CAUTION
Both directories must have the same folder structure. What I mean is, do not copy the Create.cs.t4
in the MvcView
folder directly into the CodeTemplates
folder. Just copy the entire MvcView
folder into CodeTemplates
folder.
Do not delete include files such as Imports.include.t4
and ModelMetadataFunctions.cs.include.t4
because other files need them to be there.
If you're using C#, feel free to delete files with .vb.t4
extension and vice versa.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With