CodeZine(コードジン)

特集ページ一覧

颯爽登場!ASP.NET MVC 3の概要を押さえる

ASP.NET MVC3入門(1)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/03/01 14:00

ダウンロード ダウンロード (994.9 KB)

目次

Html.Rawヘルパーメソッド

 AllowHTML属性はクラスやプロパティに対して設定する属性クラスです。ただし、コントローラー側などで動的に生成した文字列をHTML文字列のまま出力したい場合はAllowHTML属性では処理できません。そんなときはHtml.Rawヘルパーメソッドを使用します。

 Html.Rawヘルパーメソッドは渡されたパラメーターのstring型の文字列をエンコード処理せずにそのまま出力します。

Html.Rawメソッド使用例
@{
    string hs = "<h1>Html.RawメソッドはHTML文字列をそのまま出力できます。</h1>";
}

<p>
    @Html.Raw(hs)
</p>

 実行結果は図6のとおりです。

図6 Html.Rawヘルパーメソッドの実行結果
図6 Html.Rawヘルパーメソッドの実行結果

 AllowHTMLとHtml.Rawヘルパーメソッドを使用すればHTML文字列を利用したい場所を効率的に指定できるようになります。

グローバルアクションフィルターの設定

 MVC 2まではフィルタ機能を各コントローラーかコントローラークラスのメソッドに対して、属性クラスとして適用していました。MVC 3では、Global.asaxファイルにグローバルフィルタに登録するRegisterGlobalFiltersメソッドが追加され、アプリケーション全体に一括登録できるようになりました。エラーハンドリングや、キャッシュ、認証、独自のフィルターなどが登録できるので利用することも多くなるでしょう。

Global.asaxに記載するグローバルアクションフィルターの設定例
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のサイトで確認できます。

 利用方法は下記のとおりです。

  1. Package Manager Consoleを表示する
  2. Install-Package XXX(Package ID)とインストールしたいパッケージを入力する

 これだけです。

Package Manager Consoleを表示する

 VS 2010のメニューから[表示]-[その他のウィンドウ]-[Package Manager Console]を選択して、PackageManger Consoleを表示します(図7)。

図7 Package Manager Consoleの表示
図7 Package Manager Consoleの表示

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のように参照追加やファイルの展開が実施されます。

図8 Microsoft Web Helpersの展開
図8 Microsoft Web Helpersの展開

 すでに展開されているので、Microsoft Web Helpersは利用できます。今回はTwitterの直近のツイートを表示するTwitterヘルパーと、Xboxのゲームカードを表示するGamerCardヘルパーを使用してみます。

Microsoft Web Helpersの利用(Razor構文)
<p>
    @Twitter.Profile("naoki0311")
    @GamerCard.GetHtml("ExpressNaoki")
</p>

 Twitter.Profile("ユーザー名")と、GamerCard.GetHtml("Xbox Live ID")と指定するだけです。実行結果は図9のとおりです。

図9 Microsoft Web Helpersの利用
図9 Microsoft Web Helpersの利用

 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との連携などを見据えている方はチェックしてみるとよいでしょう。

参考文献



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:ASP.NET MVC3入門

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

  • WINGSプロジェクト ナオキ(ナオキ)

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

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5