Html.Rawヘルパーメソッド
AllowHTML属性はクラスやプロパティに対して設定する属性クラスです。ただし、コントローラー側などで動的に生成した文字列をHTML文字列のまま出力したい場合はAllowHTML属性では処理できません。そんなときはHtml.Rawヘルパーメソッドを使用します。
Html.Rawヘルパーメソッドは渡されたパラメーターのstring型の文字列をエンコード処理せずにそのまま出力します。
@{ string hs = "<h1>Html.RawメソッドはHTML文字列をそのまま出力できます。</h1>"; } <p> @Html.Raw(hs) </p>
実行結果は図6のとおりです。
AllowHTMLとHtml.Rawヘルパーメソッドを使用すればHTML文字列を利用したい場所を効率的に指定できるようになります。
グローバルアクションフィルターの設定
MVC 2まではフィルタ機能を各コントローラーかコントローラークラスのメソッドに対して、属性クラスとして適用していました。MVC 3では、Global.asaxファイルにグローバルフィルタに登録するRegisterGlobalFiltersメソッドが追加され、アプリケーション全体に一括登録できるようになりました。エラーハンドリングや、キャッシュ、認証、独自のフィルターなどが登録できるので利用することも多くなるでしょう。
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { // HandleError属性をアプリケーション全体に一括登録 filters.Add(new HandleErrorAttribute()); }
RegisterGlobalFiltersメソッドはアプリケーションスタート時にApplication_Startメソッドから実行されます。コントローラーやクラスの変更や追加のたびに属性を追加するという作業から解放されるので、ぜひご活用ください。
NuGetの活用
ASP.NET MVC 3ではNuGetというパッケージマネージャーが含まれています(記事公開時の時点ではバージョンアップされ1.1がリリースされています)。NuGetとは、.NETで利用できるオープンソースライブラリをまとめて管理しているパッケージマネージャーです。
どんなパッケージがあるのかは、NuGetのサイトで確認できます。
利用方法は下記のとおりです。
- Package Manager Consoleを表示する
- Install-Package XXX(Package ID)とインストールしたいパッケージを入力する
これだけです。
Package Manager Consoleを表示する
VS 2010のメニューから[表示]-[その他のウィンドウ]-[Package Manager Console]を選択して、PackageManger Consoleを表示します(図7)。
Install-Package XXX(Package ID)とインストールしたいパッケージを入力する
コンソール内でInstall-Package XXX(Package ID)と入力します。すると、該当のパッケージがプロジェクト内に展開されます。例として、WebMatrixで使用できる「Microsoft Web Helpers」をインストールしてみます。NuGetのサイトで、Package IDを見てみると"microsoft-web-helpers"と記載されていますので、コマンドは"Install-Package microsoft-web-helpers"となります。これを実行すると図8のように参照追加やファイルの展開が実施されます。
すでに展開されているので、Microsoft Web Helpersは利用できます。今回はTwitterの直近のツイートを表示するTwitterヘルパーと、Xboxのゲームカードを表示するGamerCardヘルパーを使用してみます。
<p> @Twitter.Profile("naoki0311") @GamerCard.GetHtml("ExpressNaoki") </p>
Twitter.Profile("ユーザー名")と、GamerCard.GetHtml("Xbox Live ID")と指定するだけです。実行結果は図9のとおりです。
NuGetには他にもMvcSiteMapProviderや、WindowsAzureStorage.Helperなど便利なパッケージが含まれていますので、一度チェックしてみることをお勧めします。
まとめ
今回はMVC 3 RTMに伴い、MVC 2からのマイグレーションや、すぐに利用できるお手軽な新機能をご紹介しました。すでにMVC 3を触れている方にとっては物足りなく感じたかと思いますが、次回以降はより掘り下げて各新機能や強化ポイントをピックアップしてご紹介したいと思います。
毎年バージョンアップされるMVCはどんどん開発生産性をまし、Web標準にも対応しやすくなってきています。評価ではなく、実際にMVC 3を使用してプロジェクトに取り組んでみてはいかがでしょうか。
最後になりますが、国内でもMVC 3に関する情報を発信する方も増えてきています。参考文献にも記載しているBlogについて簡単にご紹介します。
- 『THE TRUTH IS OUT THERE』の井上さんは日本マイクロソフトのエバンジェリストで、ASP.NETを中心にWebプラットフォームやテクノロジーに関する情報を高頻度でポストしています。便利な活用Tipsなども出てくるので購読をお勧めします。
- 『無聊を託つ』の竹原さんはMVC 3などで利用できるヘルパーメソッドの自作方法や海外のMVC 3の情報をいち早く消化し日本語で情報発信しています。MVC 3を実務で活用している方必見です。
- 『まめしば雑記』のしばやんさんはMVC 3のソースコードを読みそこから不満に感じている点をすぐに解決する方法や便利な機能を紹介しています。現在は、ASP.NET MVC 3開発入門という記事を日々投稿しています。チュートリアル形式で学習したい方は直ぐに閲覧してみましょう。
- 『waりとnaはてな日記』の割と普通さんはWindows AzureとASP.NET MVCを絡めた情報発信をしています。次回以降ご紹介予定の、JsonValueProviderFactoryなど一部の機能を掘り下げて活用する方法を紹介しています。Azureとの連携などを見据えている方はチェックしてみるとよいでしょう。