【问题标题】:How to create custom scaffold templates in ASP.NET MVC5?如何在 ASP.NET MVC5 中创建自定义脚手架模板?
【发布时间】:2019-03-13 14:35:49
【问题描述】:

我正在使用 ASP.NET MVC5 和 VS2013

我尝试从

复制 CodeTemplates 文件夹

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\VWDExpress\ItemTemplates\CSharp\Web\MVC 4\CodeTemplates

在其中包含子文件夹“AddController”、“AddView”和 T4 模板,然后我修改了一些模板,但是当我尝试添加 View 或 Controller 时没有任何反应..

【问题讨论】:

  • 我挖了一点,还没有找到自定义脚手架系统的方法。

标签: asp.net-mvc .net-4.0 scaffolding asp.net-mvc-5 asp.net-mvc-scaffolding


【解决方案1】:

首先,您的计算机上似乎都安装了 Visual Studio 2013 和 2012。我尝试查找您提供的路径,但找不到。在您的路径上,您似乎正在尝试使用 MVC4 模板。这是我的路径:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\
Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates

以下是我如何为 BaseController 自定义脚手架模板:

  1. 直接在项目文件夹中创建名为“CodeTemplates”的文件夹。

  2. 转到下面的路径,找到 MvcControllerWithActions 文件夹全部复制到文件夹“CodeTemplates”

    C:\Program Files (x86)\Microsoft Visual Studio 12.0\
    Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates
    
  3. 转到项目中的 CodeTemplates -> MvcControllerWithActions。

  4. MvcControllerWithActions里面有Controller.cs.t4Controller.vb.t4两个文件,如果你用的是C#,可以删除Controller.vb.t4

  5. 打开Controller.cs.t4文件,修改Controller名称为BaseController,如下:

    public class <#= ControllerName #> : BaseController
    {
    }
    
  6. 现在,当您尝试使用“添加新的脚手架项”创建 MVC5 控制器时,它将使用您自定义的模板。

希望对你有帮助。

【讨论】:

  • 谢谢,效果很好!我的情况是我使用的是 VSExpress,所以实际路径是:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\VWDExpressExtensions\Microsoft\Web\Mvc\Scaffolding\Templates
  • 有趣的是,我的位于:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC\1033
  • 1033?为什么我的文件夹没有Scaffolding/Templates?奇怪
  • 我不想修改模板,而是想添加新模板,以便我可以根据需要选择默认模板或自定义模板。这可能吗 ?我试图在我的解决方案中复制默认模板并重命名它。但是当我添加控制器时,它不会在那里显示我的模板。
【解决方案2】:

MVC4 和 MVC5 模板位于不同的位置。虽然 MVC4 模板位于您提供的文件夹中,但 MVC5 模板位于此文件夹中:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates

您需要做的自定义是在您的项目文件夹中创建一个名为CodeTemplates 的文件夹,并将您要自定义的模板复制到CodeTemplates 文件夹中。

您需要复制 MvcViewMvcControllerWithContext 文件夹才能使用 MVC 5 Controller with view,使用 EntityFramework 命令。

注意

  • 两个目录必须具有相同的文件夹结构。我的意思是,不要将MvcView文件夹中的Create.cs.t4直接复制到CodeTemplates文件夹中。只需将整个 MvcView 文件夹复制到 CodeTemplates 文件夹中即可。

  • 不要删除包含文件,例如 Imports.include.t4ModelMetadataFunctions.cs.include.t4,因为其他文件需要它们存在。

  • 如果您使用 C#,请随意删除扩展名为 .vb.t4 的文件,反之亦然。

【讨论】:

    【解决方案3】:

    MVC5 T4 模板位于 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\VWDExpressExtensions\Microsoft\Web\Mvc\Scaffolding\Templates\MvcView 中

    【讨论】:

      【解决方案4】:

      VS 2015 中找到模板:

      C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates\MvcView

      【讨论】:

        【解决方案5】:

        对于 Visual Studio 2017,MVC5 T4 模板位于 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates\MvcView 中

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-05-16
          • 1970-01-01
          • 2019-03-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多