寻找最简单的选项在没有任何Web服务器的情况下在控制台应用程序中呈现Razor cshtml页面

时间:2018-11-03 19:52:21

标签: razor asp.net-core razor-pages

我一直在将Razor Engine用于邮件合并样式模板应用程序。

随着ASP.NET Core体系结构的出现,我希望可以将Razor cshtml页面呈现为字符串,而无需任何其他库包。

我可以这样做吗?如果是的话,链接到示例代码会很有帮助。

这个想法来自Linux,我们可以在命令行report.php中渲染PHP文件,然后输出到stdout。无需网络服务器。这么多年后,我希望我们可以使用cshtml进行相同的操作。

1 个答案:

答案 0 :(得分:0)

您不需要网络服务器。有许多可用的模板引擎。我个人使用了与asp.net核心(https://github.com/toddams/RazorLight

)配合使用的RazorLight

要在控制台应用程序中输出文本,只需使用

 // c#
 Console.Write("my text");

 // php
 echo "my text";

要基于模板输出文本(使用RazorLight):

var engine = new RazorLightEngineBuilder()
              .UseMemoryCachingProvider()
              .Build();

string template = "Hello, @Model.Name. Welcome to RazorLight repository";
ViewModel model = new ViewModel() { Name = "John Doe" };

string result = await engine.CompileRenderAsync("templateKey", template, model);

Console.Write(result);

(根据评论编辑)