web-dev-qa-db-ja.com

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

私はこれをしたいです:

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 「コンソールからこれを完全に実行できるHello World」はありません。

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

54
Scott Hanselman

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

RazorEngine 。フルストップ。

36
Darin Dimitrov

ServiceStackは、Razorビューページをレンダリングするためのもう1つのオプションです。 ASP.NETまたはHttpListenerWebホストへの統合用に最適化されていますが(そして、ビューページの自動検出とディレクトリへの登録、変更されたページのオンザフライでの再コンパイルなどのための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へのアクセスが含まれます。 razor-console.servicestack.net にあるように、セルフホストのServiceStack HttpListenerからかみそりのWebサイトを簡単にホストすることもできます。そのソースコードは セルフホストコンソールで利用できます)アプリケーション または Windowsサービス

13
mythz

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

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

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

2
Wiktor Zychla

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

0
Scott Stevens