MVC5自定义T4模板

本文介绍如何使用MVC5代码模板自动生成带有layui样式的HTML表单,包括文本输入框和下拉列表,并展示了针对Employee模型的具体实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在程序包控制台输入install-package mvc5codetemplatescsharp为项目安装mvc5codetemplates

创建的myCreate.tt内容如下

<#@ template language="C#" HostSpecific="True" #>
<#@ output extension=".cshtml" #>
<#@ include file="Imports.include.t4" #>
@model <#= ViewDataTypeName #>
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
 <link href="~/layui/css/layui.css" rel="stylesheet" media="all" />
    <script src="~/layui/layui.js" charset="utf-8"></script>
    <title><#= ViewName #></title>
</head>
<body>   
 <form class="layui-form" style = "padding-top:30px;padding-right:50px">
  @Html.AntiForgeryToken()   
<#
  int i=0;
  foreach (PropertyMetadata property in ModelMetadata.Properties) {
   if (property.Scaffold && !property.IsAutoGenerated && !property.IsReadOnly && !property.IsAssociation) {
#>      
<#
    if (property.IsPrimaryKey && IsPropertyGuid(property)) {
     continue;
    }
    if (property.IsForeignKey) {
#>
  <div class="layui-inline"style="width: 300px;">
   <label class="layui-form-label"><#= property.PropertyName #></label>
   <div class="layui-input-block">
    @Html.DropDownList("<#= property.PropertyName #>","无")
   </div>
  </div>
<#
    } else {
#><#  
     if(i==0){
#>
  <div class="layui-form-item">
<#
     }
#>
   <div class="layui-inline" style="width: 300px;">
    <label class="layui-form-label"><#= property.PropertyName #></label>
    <div class="layui-input-block">
     <input type="text" name="<#= property.PropertyName #>" placeholder="请输入" autocomplete="off" class="layui-input">
    </div>
   </div>
<#
     i=i+1;
     if(i==2){
      i=0;
#>
  </div>
<#
     }
#>  
<#
   }
#>
<#
  }
 }
#>
 </form>
</body>
</html>
<#@ include file="ModelMetadataFunctions.cs.include.t4" #>



运用该模板创建创建的前端html如下

@model OARebuild.Models.Employee
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
 <link href="~/layui/css/layui.css" rel="stylesheet" media="all" />
    <script src="~/layui/layui.js" charset="utf-8"></script>
    <title>Creategg</title>
</head>
<body>   
 <form class="layui-form" style = "padding-top:30px;padding-right:50px">
  @Html.AntiForgeryToken()   
      
  <div class="layui-form-item">
   <div class="layui-inline" style="width: 300px;">
    <label class="layui-form-label">empName</label>
    <div class="layui-input-block">
     <input type="text" name="empName" placeholder="请输入" autocomplete="off" class="layui-input">
    </div>
   </div>
  
      
   <div class="layui-inline" style="width: 300px;">
    <label class="layui-form-label">loginName</label>
    <div class="layui-input-block">
     <input type="text" name="loginName" placeholder="请输入" autocomplete="off" class="layui-input">
    </div>
   </div>
  </div>
  
      
  <div class="layui-form-item">
   <div class="layui-inline" style="width: 300px;">
    <label class="layui-form-label">loginPassWord</label>
    <div class="layui-input-block">
     <input type="text" name="loginPassWord" placeholder="请输入" autocomplete="off" class="layui-input">
    </div>
   </div>
  
      
   <div class="layui-inline" style="width: 300px;">
    <label class="layui-form-label">phone</label>
    <div class="layui-input-block">
     <input type="text" name="phone" placeholder="请输入" autocomplete="off" class="layui-input">
    </div>
   </div>
  </div>
  
      
  <div class="layui-form-item">
   <div class="layui-inline" style="width: 300px;">
    <label class="layui-form-label">QQ</label>
    <div class="layui-input-block">
     <input type="text" name="QQ" placeholder="请输入" autocomplete="off" class="layui-input">
    </div>
   </div>
  
      
   <div class="layui-inline" style="width: 300px;">
    <label class="layui-form-label">homeAddr</label>
    <div class="layui-input-block">
     <input type="text" name="homeAddr" placeholder="请输入" autocomplete="off" class="layui-input">
    </div>
   </div>
  </div>
  
      
  <div class="layui-form-item">
   <div class="layui-inline" style="width: 300px;">
    <label class="layui-form-label">birthday</label>
    <div class="layui-input-block">
     <input type="text" name="birthday" placeholder="请输入" autocomplete="off" class="layui-input">
    </div>
   </div>
  
      
   <div class="layui-inline" style="width: 300px;">
    <label class="layui-form-label">age</label>
    <div class="layui-input-block">
     <input type="text" name="age" placeholder="请输入" autocomplete="off" class="layui-input">
    </div>
   </div>
  </div>
  
      
  <div class="layui-form-item">
   <div class="layui-inline" style="width: 300px;">
    <label class="layui-form-label">sex</label>
    <div class="layui-input-block">
     <input type="text" name="sex" placeholder="请输入" autocomplete="off" class="layui-input">
    </div>
   </div>
  
      
   <div class="layui-inline" style="width: 300px;">
    <label class="layui-form-label">status</label>
    <div class="layui-input-block">
     <input type="text" name="status" placeholder="请输入" autocomplete="off" class="layui-input">
    </div>
   </div>
  </div>
  
      
  <div class="layui-inline"style="width: 300px;">
   <label class="layui-form-label">empDepId</label>
   <div class="layui-input-block">
    @Html.DropDownList("empDepId","无")
   </div>
  </div>
      
  <div class="layui-inline"style="width: 300px;">
   <label class="layui-form-label">empPosId</label>
   <div class="layui-input-block">
    @Html.DropDownList("empPosId","无")
   </div>
  </div>
 </form>
</body>
</html>

标签之间的对其方式要注意


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值