【MVC】自定义Scaffold Template
MVC提供了基本的CRUD Scaffold Template模板,创建视图的时候,只要勾选创建一个强类型视图 , 并选择模型类,就可以选择支架模板了,这些模板包括List,Detail,Create,Edit,Delete,Empty等。这种方式大大简化了实现一个简单的增删改查,但是这些模板过于单一,根本没法直接使用,或者还要花更多的时间去修改,所以还是打造适合自己的模板吧,节省你的时间去和业务打交道。
一、使用nuget安装mvc支架模板
mvc3:
Install-Package Mvc3CodeTemplatesCSharp
mvc4:
Install-Package Mvc4CodeTemplatesCSharp
mvc5:
Install-Package Mvc5CodeTemplatesCSharp
实践:vs2013安装mvc4
(1)安装过程出现的错误:
1.选择确定,并勾选不再显示此消息
2.点击 全是
3.最后出现这个错误,不要怕,关闭掉vs2013,再次打开,错误就消失了
(2)安装完成后
二、创建模板
在AddView中,添加新项,.tt文件就是文本模板(visual C#-常规 下),但是支架模板和它是不大一样的,所以还是直接复制一个改改吧,或你也可以花时间把它研究透。这里使用的是T4语法,终于学习到这点了,呵呵。
=============================================================
T4包括三个部分:
Directives(指令) | 元素,用于控制模板如何被处理 |
Texts blocks(文本块) | 用于直接复制到输出文件 |
Control blocks(控制块) | 编程代码,用于控制变量显示文本 |
1)指令
语法:
<#@ DirectiveName [AttributeName = "AttributeValue"] … #>
常用的指令
<#@ template [language="C#"] [hostspecific="true"] [debug="true"] [inherits="templateBaseClass"] [culture="code"] [complierOption="options"] #>
<#@ parameter type="Full.TypeName" name="ParameterName" #>
<#@ output extension=".fileNameExtension" [encoding="encoding"] #>
<#@ assembly name="[assembly strong name| assembly file name]" #>
<#@ import namespace="namespace" #>
<#@ include file="filepath" #>
2)文本块只需要输入文本就可以了
=============================================================
这里创建一个index.tt模板,复制删除的模板代码进去,改下英文提示为中文,内容太长,只截下图
三、应用
1、创建了一个测试模型:
public class TestModel
{
[Required]
[Display(Name = "用户名")]
[DataType(DataType.Text)]
public string UserName { get; set; }
}
2、添加视图
3、大功造成
命名空间的错误提示:
tt使用到了以下命名空间
using Microsoft.VisualStudio.Web.Mvc.Scaffolding.BuiltIn;
添加引用:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Microsoft.VisualStudio.Web.Mvc.4.0.dll
引用完了,关闭项目再打开,就没了
参考文章:
http://www.cnblogs.com/Hcsdn/archive/2013/05/23/MVCScaffoldTemplates.html
http://www.cnblogs.com/freeliver54/archive/2013/03/04/2942821.html