2013-01-09 41 views
53

我想這樣做:在Console應用程序中從ASP.NET Razor模板生成HTML的最佳解決方案是什麼?

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

我注意到,服務棧有一些剃刀自託管,但同時還有很長的頁面在這裏http://razor.servicestack.net沒有「你好,你可以從控制檯完全做到這一點。「

什麼是在控制檯應用程序中從ASP.NET Razor模板生成HTML的最佳解決方案?

+5

試試這也是https://github.com/jlamfers/RazorMachine – MikeSW

回答

35

什麼是控制檯應用程序內從ASP.NET生成HTML 剃刀模板,目前最好的解決辦法?

RazorEngine。句號。

+1

你會推薦任何一步一步來完成這項工作的博客嗎?我一直在尋找最後一個小時,這是我發現http://mehdi.me/generating-html-emails-with-razorengine-introduction/#start的唯一鏈接。我按照教程,但編譯模板時出錯說錯誤。 – akd

+1

供參考:「這個項目正在尋找新的維護人員,所以如果你想幫助編寫gitter或開始發送PR :)」 –

13

ServiceStack是渲染剃刀視圖頁面的另一種選擇。儘管它已經被優化,可以集成到一個網頁主機(並提供用於在目錄中自動發現和註冊視圖頁面,在運行中重新編譯修改過的頁面等的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(); 

Here's the stand-alone unit test of this example

使用ServiceStack的Razor視圖渲染引擎的好處包括訪問許多MVC的移植到ServiceStack的HtmlHelpers。您還可以從自己託管的ServiceStack HttpListener輕鬆託管剃鬚刀網站,如razor-console.servicestack.net所示,源代碼可在Self-Hosted Console ApplicationWindows Service中獲得。

+2

ServiceStack已經商業化;如果你沒有開源,你可能需要許可。舊版本是BSD;更新的是GNU Affero GPL(除非獲得許可)。請參閱https://servicestack.net/download和https://servicestack.net/pricing – TrueWill

相關問題