【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)文本块

  只需要输入文本就可以了

3)控制块
  <# #> 代码表达式
  <#= #> 显示表达式值
  <#+ #> 声明定义方法、变量

=============================================================

  这里创建一个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

 

posted @ 2015-08-10 00:45  心存善念  阅读(665)  评论(2编辑  收藏  举报