我正在尝试使用here中的Engine.Razor lib为C#中的电子邮件生成模板。但我不明白他们的主要财产是什么? 根据文档,我像这样运行它
emailBody = Engine.Razor.RunCompile(emailBodyText, "SomeKey", null, new { SomeVariable = 3 });
它会生成一些名为" SomeKey"!的缓存密钥。我真的不需要这个!但它在参数中是必需的。
但我遇到的问题是,在我生成了多封电子邮件后,我得到一个例外,说明密钥已经生成了。因此,每次生成电子邮件时,我都会投入一个独特的价值,或者我在这里错过了关于此库的使用的信息吗?
较旧的文档说使用.Parse(不需要密钥)但Visual Studio将其显示为已弃用!
string result = Razor.Parse(template, new { Name = "World" });
所以即使它有效,我也不敢使用这种方法!
答案 0 :(得分:1)
您没有继续阅读其他文档,了解如何使用此库或误解RunCompile
和Run
部分。从您链接的作者网站,步骤如下。
string template = "Hello @Model.Name, welcome to RazorEngine!";
var result =
Engine.Razor.RunCompile(template, "templateKey", null, new { Name = "World" });
这里使用的RunCompile方法是一种扩展方法,您需要这样做 打开RazorEngine.Templating命名空间。
" templateKey"必须是唯一的并且在运行上面的例子之后 您可以使用此密钥重新运行缓存的模板。
// using RazorEngine.Templating; // Dont forget to include this.
var result =
Engine.Razor.Run("templateKey", null, new { Name = "Max" });
注意,下次作者使用新的模型值运行模板时,他正在调用Engine.Razor.Run
。如果您再次拨打RunCompile
,则需要另一个唯一密钥。