SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Scott Guthrie氏 Blog翻訳

ASP.NET MVC 3とRazorの@helper文法

連載:ScottGu's Blog翻訳

  • X ポスト
  • このエントリーをはてなブックマークに追加

複数のビューで@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で、私をフォローしてください。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Scott Guthrie氏 Blog翻訳連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト Chica(チカ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Scott Guthrie(Scott Guthrie)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5947 2011/05/25 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング