我正在创建一个需要向用户发送各种电子邮件的Web应用程序。我没有在应用程序中硬编码电子邮件的内容,而是使用存储在磁盘上的模板,并用实际数据替换其中的标记(例如“Hello,%% FirstName %%!”)。我有一些创建XSLT模板的经验,但由于数据自然不是XML格式,因此这可能不是最合适的。 .NET中是否有更好的模板工具?
请注意,我更喜欢内置于该语言的语言,但我也会考虑加载项。
谢谢,
格雷厄姆
答案 0 :(得分:2)
我个人使用Spark。它是一个易于使用的文本模板库(下面是Spark语法的一个例子)
<var names="new [] {'alpha', 'beta', 'gamma'}"/>
<for each="var name in names">
<test if="name == 'beta'">
<p>beta is my favorite.</p>
<else/>
<p>${name} is okay too I suppose.
</test>
</for>
它甚至附带了一个电子邮件文本模板示例代码,您可以在github上查看。
答案 1 :(得分:1)
您可能需要查看MVCContrib。他们有一个电子邮件模板系统IEmailTemplateService
,它使用Views来呈现实际的电子邮件,这使您可以访问许多功能,包括不同的视图引擎。如果你不在MVC环境中,你仍然可以提取一些有用的技巧。
答案 2 :(得分:0)
我正在使用NVelocity,我发现它非常灵活且易于使用。它不仅允许你替换tokes,还包括一种编程语言,例如, for conditionals(if)和loops(for,foreach)。
original project似乎已经死了,但是Castle project维护了一个分叉。
当然还有很多其他的替代模板库(stringtemplate似乎很受欢迎),正如您在前一段时间所看到的那样in this question。