我一直在将Razor Engine用于邮件合并样式模板应用程序。
随着ASP.NET Core体系结构的出现,我希望可以将Razor cshtml页面呈现为字符串,而无需任何其他库包。
我可以这样做吗?如果是的话,链接到示例代码会很有帮助。
这个想法来自Linux,我们可以在命令行report.php中渲染PHP文件,然后输出到stdout。无需网络服务器。这么多年后,我希望我们可以使用cshtml进行相同的操作。
答案 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);
(根据评论编辑)