如何在控制台应用程序中使用Razor View Engine?

Rom*_*man 26 .net c# asp.net-mvc

我的控制台应用需要发送HTML电子邮件.我想在Razor视图中以HTML格式编写电子邮件,并让引擎生成电子邮件正文内容.

这意味着没有控制器或请求.我怎么能这样做?

nem*_*esv 27

有一个开源项目允许使用Razor作为一般的模板引擎:它叫做RazorEngine(GitHub上的代码)

项目页面的示例:

string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });
Run Code Online (Sandbox Code Playgroud)

  • 您可以将模板放在单独的文件中,只需从文件中加载模板并将其传递给引擎. (4认同)
  • 我正在使用它,它非常好.但它有以下缺点:1-没有强类型模型.2-你不能使用html助手.因此,没有部分视图:S!3-如果你使用3.0版它支持布局和部分,但它超级慢,会杀死你的机器! (2认同)

Dan*_*olm 5

在GitHub上有一个演示项目,它演示了如何使用Razor视图在正在运行的ASP.Net应用程序的上下文之外呈现内容.它完全支持布局,_ViewStart文件,partials,HtmlHelper,Urlhelper等.

请注意,它使用RazorGenerator Visual Studio工具预编译Razor模板.

有关更多背景信息,请参阅我的介绍性博客文章.