是否有比XSLT更好的.NET模板系统?

时间:2010-03-06 08:01:40

标签: asp.net email templates

我正在创建一个需要向用户发送各种电子邮件的Web应用程序。我没有在应用程序中硬编码电子邮件的内容,而是使用存储在磁盘上的模板,并用实际数据替换其中的标记(例如“Hello,%% FirstName %%!”)。我有一些创建XSLT模板的经验,但由于数据自然不是XML格式,因此这可能不是最合适的。 .NET中是否有更好的模板工具?

请注意,我更喜欢内置于该语言的语言,但我也会考虑加载项。

谢谢,

格雷厄姆

3 个答案:

答案 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