ASP.NET MVC提供了选择新创建的视图所基于的“脚手架模板”的功能(添加视图>创建强类型视图>脚手架模板)。
是否可以创建自己的脚手架模板?如果是这样,怎么样?
答案 0 :(得分:33)
ASP.NET MVC使用T4模板。 Here's an overview
以下是步骤:
install-package mvc3codetemplatescsharp
CodeTemplates
文件夹将添加到包含模板从这里您可以修改现有模板或添加新模板。
或者,如果您想全局修改,可以在C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 3\CodeTemplates\
文件夹中进行修改。
答案 1 :(得分:11)
当然,您可以在没有nuget的情况下使用T4:将文件夹放在应用程序网站的根目录中(包含视图的项目)。目录结构很重要,因此它应该是
\ CodeTemplates \ AddView \ AspxCsharp \ MyTemplate.tt
您可以复制位于C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Web \ MVC 3 \ CodeTemplates \
中的现有模板之一的内容接下来,清除名为“Custom Tool”的TT文件上的属性。这应该是空白的。
然后右键单击任何“控制器操作”并说“添加视图”,或者由于控制器位于我们的单独项目中,右键单击“查看”文件夹并单击“添加视图”。
从下拉列表中单击“创建强类型视图”,然后在“查看数据类:”下输入要使用的类型
最后,在“查看内容”下拉列表中,选择“MyTempate”。如果您已正确输入文件夹,则应显示此信息。
答案 2 :(得分:4)
在带有MVC 4的Visual Studio 2012中,简单的方法(安装Nuget包)会让您得到一个不完整的设置,因为Nuget包已经过时了(最后一次更新于2011年 - 也许是它创建的那天)。 p>
你必须使用相当于Francis Shanahan的答案,而是复制东西的路径是(64位):
C:\ Program Files(x86)\ Microsoft Visual Studio \ 11.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Web \ MVC 4 \ CodeTemplates
您:
添加对Microsoft.Web.Infrastructure的引用,您可以在Assemblies中找到它>扩展
将此CodeTemplates文件夹(包括文件夹本身)复制到项目的根目录并将其包含在项目中
暂时忽略编译错误(就像找不到MvcTextTemplateHost一样)
浏览每个添加文件的属性,并删除每个文件的“自定义工具”属性中的文本。当你这样做时,每个文件旁边的展开箭头将消失(因为该文件将不再就地生成)
全部保存并构建 - 编译器错误消失
如果编译器错误没有消失 - 特别是如果你在生成的.cs文件中看到错误,Visual Studio找不到,而.tt文件 - 关闭Visual Studio,擦除你的临时文件夹,重新打开解决方案。在一个案例中,我甚至在问题解决之前重新启动。它是由.tt模板中生成的.cs文件引起的,Visual Studio仍在尝试自动生成代码。
此外,.tt文件的名称有点令人困惑 - 这是他们映射的方式:
GUI:
清空MVC控制器
具有读/写操作和视图的MVC控制器,使用实体框架
具有空读/写动作的MVC控制器
空API控制器
具有读/写操作的API控制器,使用实体框架
具有空读/写操作的API控制器
CodeTemplates \ AddController的文件分别映射:
Controller.tt
ControllerWithContext.tt
Controller.tt
ApiController.tt
ApiControllerWithContext.tt
ApiController.tt
在Controller.tt和ApiController.tt中有一个if语句,它处理带/不带读/写动作的功能。
对于视图,命名是直观的,除了List.tt创建Index.cshtml,而Empty.tt用于创建/删除/详细信息/编辑/索引之外的任何视图。
This question covers what properties you can use in the .tt templates
.tt模板是Microsoft T4模板。 T4 Template Syntax
答案 3 :(得分:2)
或者,对于32位系统上的Visual Web Developer Express,这些文件的另一个位置是C:\ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ VWDExpress \ ItemTemplates \ CSharp \ Web \ MVC 3 \ CodeTemplates
答案 4 :(得分:0)
这篇MSDN文章讨论了脚手架和页面模板: http://msdn.microsoft.com/en-us/library/cc488540.aspx
反过来,链接到以下文章以修改模板: http://msdn.microsoft.com/en-us/library/cc488537.aspx