我想在C#中使用从here Engine.Razor lib的电子邮件生成模板。但我不明白他们的主要财产是什么? 按照文档我运行像这样Engine.Razor抛出异常使用相同的键多次使用
emailBody = Engine.Razor.RunCompile(emailBodyText, "SomeKey", null, new { SomeVariable = 3 });
它会生成一个名为“SomeKey”一些缓存的关键!我真的不需要这个!但是它在参数中是必需的。
但我遇到的问题是,我生成多个电子邮件后,我得到一个异常说,该密钥已经生成。所以,每次我生成一封电子邮件时,我是否会抛出一个独特的价值,或者我在这里错过了关于这个图书馆使用的东西?
旧文档说要使用.Parse(不需要密钥),但Visual Studio将其显示为已弃用!
string result = Razor.Parse(template, new { Name = "World" });
所以我很害怕使用这种方法,即使它工作!
这真是令人困惑!每次我生成电子邮件模板时,它都会与之前的不同。恩。我的用户登录可能会生成一封电子邮件,发送它,然后30秒后生成另一封电子邮件。此电子邮件将有不同的模型信息,所以我需要一个新的模板。所以如果我理解你的答案,我需要在每次使用RunCompile时使用templateKey名称中的唯一标识符?恩。 “templateKey”+ DateTime.Now.ToString() – user1186050
缓存所有这些模板似乎有点浪费! – user1186050
@ user1186050 - 不,您正在读取它不正确。这样想一想。您有一个新的用户电子邮件模板,它接受一个字符串模型(称之为名称)。你可以使用唯一的标识符和模型值来调用第一项“RunCompile”(可以说Tommy)。现在,下一次您必须使用*特定的电子邮件模板*时,可以使用*不同模型值*(可以说user1)调用第二个命令'.Run'。您为每个模板调用'RunCompile'一次且仅一次。从此之后,您可以在唯一的模板ID上使用不同的模型值调用'Run'。 – Tommy