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

Razor 寻找在没有任何web服务器的控制台应用程序中呈现HTML页面的最简单选项,razor,asp.net-core,razor-pages,Razor,Asp.net Core,Razor Pages,我一直在使用邮件合并样式的模板应用程序 随着ASP.NET核心体系结构的出现,我希望能够将cshtml页面呈现为字符串,而不需要任何额外的库包 我可以这样做吗?如果是,链接到示例代码将是一个很大的帮助 这个想法来自Linux,我们可以在命令行report.PHP中呈现PHP文件,然后输出到stdout。不需要Web服务器。经过这么多年,我希望我们可以用cshtml做同样的事情 您不需要web服务器。有许多模板引擎可用。我个人使用的RazorLight与asp.net core配合良好: 要在控制

我一直在使用邮件合并样式的模板应用程序

随着ASP.NET核心体系结构的出现,我希望能够将cshtml页面呈现为字符串,而不需要任何额外的库包

我可以这样做吗?如果是,链接到示例代码将是一个很大的帮助


这个想法来自Linux,我们可以在命令行report.PHP中呈现PHP文件,然后输出到stdout。不需要Web服务器。经过这么多年,我希望我们可以用cshtml做同样的事情

您不需要web服务器。有许多模板引擎可用。我个人使用的RazorLight与asp.net core配合良好:

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

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

 // php
 echo "my text";
要基于模板输出文本(使用RazorLight),请执行以下操作:


(根据评论编辑)

你的“不,你不能(因为在大多数其他语言中是这样)”指的是什么?你说:“和(imho)为什么要在语言的核心包括模板引擎功能”,但这不是我要问的。asp.net核心中已包含cshtml呈现。我所要求的是找到一种简单的方法来呈现它们,而不依赖于HTTP请求。
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);