54

私はこれをしたい:

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

また、http://razorengine.codeplex.comは 1 年前のものであることを除けば完璧なようです。

編集: RazorEngine が GitHub に移動し、数か月前にコミットされたことが判明しました: https://github.com/Antaris/RazorEngine

Service Stack にはいくつかの Razor セルフホスティングがあることに気付きましたが、http://razor.servicestack.netには長いページがありますが、「コンソールからこれを完全に実行できるこんにちは世界」はありません。

コンソール アプリケーション内で ASP.NET Razor テンプレートから HTML を生成するための現在の最適なソリューションは何ですか?

4

4 に答える 4

38

コンソールアプリケーション内でASP.NETRazorテンプレートからHTMLを生成するための現在の最良のソリューションは何ですか?

RazorEngine。終止符。

于 2013-01-09T21:16:25.527 に答える
14

ServiceStack は、Razor ビュー ページをレンダリングするためのもう 1 つのオプションです。ASP.NETまたはHttpListener 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 の HtmlHelper の多くへのアクセスが含まれます。razor-console.servicestack.netに見られるように、自己ホスト型 ServiceStack HttpListener から razor Web サイトを簡単にホストすることもできます。そのソース コードは、自己ホスト型コンソール アプリケーションまたはWindows サービスで利用できます。

于 2013-01-10T17:01:58.580 に答える
2

Nancy には、セルフホスト オプションと、Razor をビュー エンジンとしてプラグインする機能があります。

https://github.com/NancyFx/Nancy/wiki/Hosting-nancy-with-wcf

https://github.com/NancyFx/Nancy/wiki/Razor-View-Engine

于 2013-01-09T18:21:29.783 に答える
0

これを「現在の最良の」ソリューションとは呼びません。しかし、私はそれが非常に興味深いと感じ、あなたがやろうとしていることを達成することができます. あまり綺麗にまとまっていません。 http://vibrantcode.com/blog/2010/11/16/hosting-razor-outside-of-aspnet-revised-for-mvc3-rc.html/

于 2013-01-09T17:54:23.963 に答える