【发布时间】:2013-08-17 17:01:40
【问题描述】:
谁能解释一下两者之间的区别,优点/缺点是什么
我需要选择一个来生成电子邮件。这些要求很常见:快速、易于使用。似乎它们都具有我需要的所有功能,但由于我是 Razor 新手,我不太清楚哪个更好。
谢谢。
【问题讨论】:
标签: .net razor razorengine
谁能解释一下两者之间的区别,优点/缺点是什么
我需要选择一个来生成电子邮件。这些要求很常见:快速、易于使用。似乎它们都具有我需要的所有功能,但由于我是 Razor 新手,我不太清楚哪个更好。
谢谢。
【问题讨论】:
标签: .net razor razorengine
我自己尝试了所有 3 个库,发现了一些不同之处。
dynamic 类型。可以使用预编译的模板。就我而言,我选择了 RazorEngine。这里还有如何使用这些库的代码:
RazorEngine
string html = Razor.Parse(templateContent, model, templatePath);
Razor模板
if (!_templatesCache.ContainsKey(templatePath))
{
var compiledTemplate = Template.Compile(templateContent);
_templatesCache.Add(templatePath, compiledTemplate);
}
string html = _templatesCache[templatePath].Render(model);
RazorMachine
private readonly Lazy<RazorMachine> _lazyRazorMachine =
new Lazy<RazorMachine>(() => new RazorMachine());
//...
var rm = _lazyRazorMachine.Value;
string html = rm.ExecuteContent(templateContent, model, null, true).Result;
还有一些性能测试,在同一个模板上对每个库测试了 2 次,它们的性能都差不多,差别不大:
RazorEngine - 1731 毫秒,0.1 毫秒
RazorTemplates - 1753 毫秒,0.1 毫秒
RazorMachine - 1608 毫秒,0.1 毫秒
【讨论】:
使用,https://github.com/smsohan/MvcMailer 它确实有助于制作基于 MVC Razor 的电子邮件。
【讨论】:
我使用 RazorEngine 生成电子邮件,它工作得很好。查看其他 2 个项目,它们似乎与 RazorEngine 一样 - 托管 MS Razor。无论如何,可以根据您的目的推荐后者。
【讨论】: