使用RazorEngine进行文本和HTML电子邮件

时间:2014-03-24 09:33:09

标签: email razorengine

我使用RazorEngine v3.3使用模板文件创建电子邮件(使用SendGrid Web API发送电子邮件)。我实现了一个基本模板,所以我可以通过覆盖WriteTo()方法来使用我自己的html助手,如图所示here

我的问题是我的电子邮件是Html和部分文本。对于Html模板,我使用razor的默认实现来对@Model值进行html编码。这是因为一些数据来自用户输入。 但是,我不能对文本部分使用相同的实现,因为在阅读时不会解释Html。

所以我看到它的方式我有3个选择:

  • 在我所有基于文本的模板中使用@Raw(Model)来忽略Html编码
  • 为我的文字模板创建另一个基本模板,该模板不会编码为Html
  • 修改我的Html基本模板,以便WriteTo()方法不会编码任何内容

第一个解决方案似乎最安全,但我有大约50个基于文本的模板,它会降低可读性。

第二个解决方案对我来说似乎最干净,但是这会阻止缓存的使用,因为我会不断地Razor.SetTemplateService()重新分配正确的基本模板?

你会建议做什么?感谢

0 个答案:

没有答案