21

有人可以解释一下有什么区别,优点/缺点

剃刀引擎

剃刀模板

剃刀机

我需要选择一个来生成电子邮件。这些要求很常见:快速、易于使用。似乎它们都具有我需要的所有功能,但由于我是 Razor 新手,我不太清楚哪个更好。

谢谢。

4

3 回答 3

19

我自己尝试了所有 3 个库,发现了一些差异。

  • RazorEngine - 最简单且效果最好的一种,默认支持缓存。
  • RazorTemplates - 不支持某些 Razor 指令(例如 @model)并使用许多dynamic类型。可以使用预编译的模板。
  • RazorMachine - 非常不可预测,并且具有奇怪的设计,需要使用全局单个实例而不是静态类。

至于我,我选择了 RazorEngine。另外这里是如何使用这些库的代码:

剃刀引擎

string html = Razor.Parse(templateContent, model, templatePath);

剃刀模板

if (!_templatesCache.ContainsKey(templatePath))
{
    var compiledTemplate = Template.Compile(templateContent);
    _templatesCache.Add(templatePath, compiledTemplate);
}

string html = _templatesCache[templatePath].Render(model);

剃刀机

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 毫秒

于 2013-10-30T11:23:55.420 回答
0

我使用 RazorEngine 生成电子邮件,它工作得很好。查看其他 2 个项目,它们似乎与 RazorEngine 一样 - 托管 MS Razor。无论如何,可以根据您的目的推荐后者。

于 2013-08-15T13:48:10.200 回答
-1

使用https://github.com/smsohan/MvcMailer它确实有助于制作基于 MVC Razor 的电子邮件。

于 2013-08-15T13:50:55.497 回答