Razor Generator を使った Razor コード (.cshtml) のアセンブリ (.dll) 化方法
Razor ヘルパーなどを記述した .cshtml ファイルを、アセンブリ (.dll) として配布したい場合があります。その際に、.cshtml ファイルを C# クラス ファイルに変換するツールが Razor Generator (Razor Single File Generator) です。
これは、Visual Studio 2010 のメニュー [ツール] – [拡張機能マネージャー] からインストールすることができます。
この詳細なドキュメントなどは下記の CodePlex サイトをご参照ください。
Razro Single File Generator: CodePlex
★ 使い方
まずは、プロジェクトに .cshtml ファイルを追加して、ヘルパーを記述します。ここでは ASP.NET MVC 3 のプロジェクトを使用しています。
プロジェクトへ .cshtml ファイルを追加ヘルパー メソッドを記述
一行目の
@* Generator : MvcHelper *@
は、生成する C# コードの種類を指定します。ここで指定できるのは下記となっています。MvcHelper, MvcView, WebPage, WebPagesHelper, Template ※詳細は https://razorgenerator.codeplex.com/ をご参照ください。
追加した .cshtml ファイルのプロパティを下記の通りに指定します。
カスタムツール: RazorGenerator
ビルド アクション:なしすると、RazorGenerator により、下記の通り .cs ファイルが生成されます。
これでプロジェクトをビルドすると、bin フォルダー内のアセンブリとしてビルドされますので、アプリケーションの配置の際にヘルパーを記述した .cshtml ファイルを配置する必要はなくなります。
あとは、View ファイルなどで、下記の例のようにヘルパーを使用することができます。
作成したヘルパーへの名前空間参照も忘れずに。(web.config でも可能)
実行結果例
Razor でカスタム ヘルパーを作成する場合などでご活用くださいませ。