複数のビューで@helpersを再利用
上記の例では、呼び出したコードと同じビューテンプレート内に定義していますが、ビューテンプレート外で@helperメソッドを定義して、プロジェクト内のすべてのビューテンプレートで再利用することも可能です。
プロジェクトのルートに作成された『App_Code』ディレクトリ内にある.cshtml/.vbhtmlファイルに、@helperメソッドを保存すれば完了です。例えば、以下では、『App_Code』フォルダに『ScottGu.cshtml』を作成し、2つの異なるヘルパーメソッドをそのファイル内に定義しました。ヘルパーメソッドは、各ファイルにいくつでも持てます。
ヘルパーをアプリケーションレベルで定義すると、アプリケーションのどのビューテンプレート内でも使用可能になります。
上記の『App_Code』のScottGu.cshtmlテンプレートは、『ScottGu』というクラスに、 『DisplayPrice』および『AnotherHelper』の静的メンバーとともに、ロジック的にコンパイルします。それを呼び出すために、以下のコードを使って、前回のサンプルを書きなおします。
Visual Studioは、このように、アプリケーションレベルのヘルパーを呼び出す時、コードIntelliSenseを提供します。
まとめ
Razorの@helper文法により、個々のビューテンプレート内、またはプロジェクトのすべてのビューテンプレートで再利用可能なヘルパーメソッドに、描画機能をカプセル化する便利な方法が利用できるようになります。
この機能を使用して、よりクリーンで保守しやすいコードが書けます。
Hope this helps,
Scott
P.S. ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- この記事の著者
-
WINGSプロジェクト Chica(チカ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
この記事は参考になりましたか?
この記事をシェア



