一.基础概念介绍
T4模板是扩展名为 .tt 的文本文件。 他分为设计时模板 和运行时模板。主要区别在于在vs中右键点击文件,打开“属性”,在“自定义工具”一栏中的值分别如下:
设计时模板: TextTemplatingFileGenerator
运行时模板:TextTemplatingFilePreprocessor

二.模板转换
  当然设计时模板可以转为运行时模板,只要将该文件的“自定义工具”属性设置为 TextTemplatingFilePreprocessor即可。
  但是运行时模板很多情况下不能转为设计时模板。

三.运行时模板的使用
这里讲解通过C#代码来控制,何时执行T4模板来产生邮件内容,并储存到指定的位置。

1.添加一个T4模板,修改为运行时模板
MultiArticle.tt

<#@ template language="C#" #>
<div style="text-align:center;"><table width="600" cellpadding="0" cellspacing="0" border="0" style="margin:0 auto;"><tbody><tr><td><div style="width:600px;text-align:left;font:12px/15px simsun;color:#000;background:#fff;">
<h1><#=Subject #></h2>
<table>
<# foreach(Article item in ArticleList){ #>
<tr><td> <#= item.Title #> </td><td> <#= item.Content #> </td></tr>
<# } #>
</table></div></td></tr></tbody></table>
</div>

2.这个模板需要一个实体类表示邮件的内容
一个是以模板名+code结尾:MultiArticleCode.cs,注意类名与模板名要相同,都是MultiArticle。

   public class Article{public string Title { get; set; }public string Content { get; set; }}public partial class MultiArticle{public string Subject { get; set; }public List<Article> ArticleList { get; set; }public MultiArticle(string subject, List<Article> articles) { Subject = subject; ArticleList = articles; }}

3.动态执行

  static void Main(string[] args){string subject="最新消息";var artList=new List<Article>();for (int i = 0; i < 4; i++){Article art = new Article();art.Title = "标题"+i+":"+Guid.NewGuid();art.Content = "内容" +i+ ":" + Guid.NewGuid();artList.Add(art);}MultiArticle mod=new MultiArticle(subject,artList);//TransformText方法是模板编译时自动产生的,//这也是前面有提到的,模板MultiArticle.tt的命名要与MultiArticleCode.cs中的类名相同的原因,//利用分部类partial,就可以调用该TransformText方法了。String pageContent = mod.TransformText();//将pageContent保存到任何你想保存的地方System.IO.File.WriteAllText("outputPage.html", pageContent, Encoding.UTF8);}

项目源码下载:

http://download.csdn.net/download/manimanihome/9667483

转载于:https://www.cnblogs.com/hnsongbiao/p/8685999.html

使用T4模板动态生成邮件内容并储存到任意位置相关推荐

  1. T4模板:MVC中用T4模板快速生成代码

    T4模板快速生成代码: 以快速生Dal文件为例,下面为T4模板文件的内容 <#@ template debug="false" hostspecific="true ...

  2. [转]使用T4模板批量生成代码

    本文转自:http://www.cnblogs.com/K_tommy/archive/2013/04/06/T4.html 前言 之前在 "使用T4模板生成代码 - 初探" 文章 ...

  3. Freemarker - 根据模板动态生成word文档

    文章目录 Freemarker 根据模板动态生成word文档 Freemarker 介绍: Freemarker 使用: freemarker加载模板目录的方法 参考资料 Freemarker 根据模 ...

  4. POI利用word模板动态生成word报表以及动态生成word表格

    目录 核心依赖 动态表格 测试类 工具类 动态数据 测试类 工具类 核心依赖 <dependency><groupId>org.apache.poi</groupId&g ...

  5. freemarker实现word文档模板动态生成

    携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第29天,点击查看活动详情 1.写在前面 很多时候,我们可能需要根据一个word模板,动态生成,我们所需要得一个word文档. 那这 ...

  6. 根据数据和模板动态生成页面+列表的动态渲染

    非原创 本文转自https://github.com/a415432669/-front_end_notebook/tree/master/Node/day6/%E6%96%87%E6%A1%A3 根 ...

  7. SpringBoot+Poi-tl根据Word模板动态生成word(含动态行表格、合并单元格)

    本编文章继SpringBoot+Poi-tl根据Word模板动态生成word(含动态行表格)文章之后 介绍Poi-tl导出word的延伸功能: 所需依赖以及word模板所属位置 见 SpringBoo ...

  8. Java中利用freemarker模板动态生成word含表格

    最近公司有导出word的需求,由于word的样式有的很复杂所以记录一下Java中利用freemarker模板动态生成word含表格,以防以后忘记. 1.word表格的模板 删掉无用的数据留下基础的样式 ...

  9. Java 读取 Excel 文件内容, 根据 pdf 模板动态生成对应的 pdf 文件

    1. 下载 adobe acrobat https://www.cr173.com/soft/11135.html 2. 编辑 pdf 模板 1用 acrobat 打开 pdf 编辑模板 添加表单元素 ...

  10. java基于word模板动态生成word及转pdf实践

    在项目中很容易会遇到需要动态生成pdf的应用场景,其实现方式也比较多 由于项目的关系,对于这种组件性的开发方式我想的是怎么方便怎么来,怎么快就怎么来 在咨询了之前做政务系统的同学后,他们都一致推荐我使 ...

最新文章

  1. 封装echarts china map geo实现dispatch触发geoSelect事件高亮显示某个省份和城市,并定义复杂样式
  2. 粤桂粤黔协作签约-丰收节交易会·李喜贵:谋定一县一园产业园
  3. CSS知识点个人总结(不断更新)
  4. linux安装nginx1.9,CentOS7.2安装Nginx 1.9
  5. 《算法图解》之选择排序
  6. HTML与XML数据的结合小总结
  7. 名片识别信息分类python_名片识别API接口_免费数据接口 - 极速数据
  8. c语言从入门到精通真垃圾,从入门到精通的C语言(吐血量)
  9. win7下安装PADS2007
  10. catia之车灯设计
  11. 《都在用的商务精英礼仪》读书笔记
  12. QT中使用以管理员权限启动一个进程
  13. STL容器——案例版
  14. java中的lt;和gt;分别是什么意思
  15. MySQL级联优缺点_【Mysql】外键级联与级联的劣势
  16. 分享145个ASP源码,总有一款适合您
  17. 2018.1.7 计算机算法课后习题总结
  18. LOJ2758 年轮蛋糕
  19. 跟着沐神学习深度学习
  20. 「 每日一练,快乐水题 」953. 验证外星语词典

热门文章

  1. oracle查询显示小写,oracle查询区分大小写
  2. 怎样填充潘通颜色_怎样判定润滑脂,锂基脂的好坏?
  3. graphpad做饼图_3D 饼环图初步完成
  4. Kubernetes 小白学习笔记(27)--kubernetes的运维-Trouble Shooting方法
  5. 设计模式之GOF23建造者模式
  6. brew mysql要多久_mac brew 安装 mysql
  7. mysql 索引分析工具,小蚂蚁学习mysql性能优化(3)--SQL以及索引优化--慢查日志分析工具和explain说明...
  8. JDBC学习(五、预编译语句对象)
  9. 七、Linux常用命令——网络通信命令、系统关机命令
  10. Springboot thymeleaf i18n国际化多语言选择-2.业务流程内部返回 对应的语言