当前从控制台应用程序中的ASP.NETRazor模板生成HTML的最佳解决方案是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (79)

我想做这个:

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

看起来http://razorengine.codeplex.com是完美的,只有一岁了。

原来,RazorEngine已经转移到GitHub并在几个月前提交了一个提交:https//github.com/Antaris/RazorEngine

我注意到服务堆栈有一些Razor自托管,但在这里有一个很长的页面http://razor.servicestack.net没有“你好,你可以从控制台完全做到这一点。”

控制台应用程序中的ASP.NET Razor模板生成HTML的最佳解决方案是什么?

提问于
用户回答回答于
用户回答回答于

ServiceStack是渲染Razor视图页面的另一种选择。尽管它已经过优化,可以集成到ASP.NETHttpListener Web主机中(并提供API用于在目录中自动发现和注册视图页面,实时重新编译修改过的页面等),但它也支持静态生成视图页面:

var razor = new RazorFormat {
    VirtualPathProvider = new InMemoryVirtualPathProvider(new BasicAppHost()),
    EnableLiveReload = false, //don't scan for file system for changes
}.Init();

var page = razor.CreatePage("Hello @Model.Name! Welcome to Razor!");
var html = razor.RenderToHtml(page, new { Name = "World" });
html.Print();

这是本例的独立单元测试

使用ServiceStack的Razor视图渲染引擎的好处包括访问许多移植到ServiceStack的MVC的HtmlHelpers。还可以从自托管的ServiceStack HttpListener轻松托管razor网站,如razor-console.servicestack.net所示,其源代码位于自托管控制台应用程序Windows服务中

扫码关注云+社区