Razor Generator を使った Razor コード (.cshtml) のアセンブリ (.dll) 化方法

Razor ヘルパーなどを記述した .cshtml ファイルを、アセンブリ (.dll) として配布したい場合があります。その際に、.cshtml ファイルを C# クラス ファイルに変換するツールが Razor Generator (Razor Single File Generator) です。

これは、Visual Studio 2010 のメニュー [ツール] – [拡張機能マネージャー] からインストールすることができます。

image

この詳細なドキュメントなどは下記の CodePlex サイトをご参照ください。

Razro Single File Generator: CodePlex

★ 使い方

  1. まずは、プロジェクトに .cshtml ファイルを追加して、ヘルパーを記述します。ここでは ASP.NET MVC 3 のプロジェクトを使用しています。

    image
    プロジェクトへ .cshtml ファイルを追加

    image

    ヘルパー メソッドを記述
    一行目の
    @* Generator : MvcHelper *@
    は、生成する C# コードの種類を指定します。ここで指定できるのは下記となっています。

    MvcHelper, MvcView, WebPage, WebPagesHelper, Template ※詳細は https://razorgenerator.codeplex.com/ をご参照ください。

  2. 追加した .cshtml ファイルのプロパティを下記の通りに指定します。

    カスタムツール: RazorGenerator
    ビルド アクション:なし

    image

  3. すると、RazorGenerator により、下記の通り .cs ファイルが生成されます。

    image

  4. これでプロジェクトをビルドすると、bin フォルダー内のアセンブリとしてビルドされますので、アプリケーションの配置の際にヘルパーを記述した .cshtml ファイルを配置する必要はなくなります。

  5. あとは、View ファイルなどで、下記の例のようにヘルパーを使用することができます。

    image
    作成したヘルパーへの名前空間参照も忘れずに。(web.config でも可能)

    image
    実行結果例

Razor でカスタム ヘルパーを作成する場合などでご活用くださいませ。