在Visual Studio 2017中,我在哪里以及如何向添加脚手架对话框中添加新的t4模板?

时间:2019-05-30 15:19:06

标签: visual-studio visual-studio-2017 asp.net-mvc-scaffolding

看过有关该主题的几篇文章(post1post2),我没有找到想要的答案,甚至这些帖子的问题似乎也没有已经回答了。另外,某些链接很旧。

在MVC项目中,按照上下文菜单路径右键单击Controllers > Add > Controller...,我们将得到Add Scaffold对话框,如下所示:

enter image description here

我了解我们可以创建一个文件夹CodeTemplates,添加修改后的模板以进行脚手架,并且在遵循上述Add Scaffold对话框时将使用它们。

我的问题是,如何在上面显示的Add Scaffold对话框中添加新条目?

例如,我可能有一种标准的方式来扩展MVC角色或用户,并希望能够对此进行扩展。我无法真正自定义现有的脚手架之一,因为该脚手架将不再可用,此外,当脚手架用于其他用途时,使用旧名称会造成混淆。

我真的想在上面显示的对话框中添加一个新条目,例如:

MVC 5 RolesController

我在哪里以及如何做?

在原始帖子之后添加:在我继续思考所提出的问题时,我发现我在努力理解使用模板,库或NuGet软件包之间的细微差别,正如本问题一样,脚手架。

在上面的示例中,我建议可以添加类似RolesController的内容。以某种定制的方式处理用户角色是一个普遍的要求,但这不仅仅是添加一个库。它还需要支持视图。还普遍需要更强大的错误处理,用于深度配置文件管理的UserController,高级帮助系统以及许多其他功能,这些功能可以归类为标准构造块,并不是每个项目都需要所有这些功能,但是如果需要时,能够轻松地将它们一个接一个地集成而不是拥有一些庞大的整体项目模板会很有用。

似乎能够使用脚手架添加这些东西似乎很有用,但是正如我上面提到的那样,我可能看不到模板,脚手架,库和NuGet之间的细微差别。我看到了每个工具的使用范围如何从一般到特定,但最好有一个框架来了解何时使用给定工具。

在我看这个问题时,至少有2种广泛的动力,也许更多; general-specificsimple-complex。脚手架控制器CRUD非常general,但它也是complex,因为它需要一个类和视图。角色控制器是more specificalso complex所需要的视图,但通常具有很高的可重复性,我们希望避免重复自己。另一方面,库非常specific,如果只需要单个库,则库可能非常simple

希望我对自己正在苦苦挣扎的事情有了更多的了解,以便有人可以帮助我指引正确的方向,以便何时使用这些工具中的每一个来提高开发效率。也许最后,我的问题的主题将需要更改,以使遇到相同问题的其他人受益。

0 个答案:

没有答案