評価してください: 

MSDN マガジン: 注目記事

ASP.NET MVC の便利機能、アクション フィルターってなんだろう?

更新日: 2011 年 1 月 14 日

この記事は オンライン版月刊技術情報誌 MSDN マガジンの中から特におすすめの記事を解説したものです。

Visual Studio 2010 や .NET Framework 4 のリリースと共に、これまでの Web フォームを中心とした ASP.NET Web 開発に、新たに ASP.NET MVC や jQuery などのテクノロジが加わり、昨今の Web 開発トレンドを生かした Web アプリケーション開発がおこなえるようになっています。そのような注目技術の情報源として、MSDN マガジンは必見です。Web 開発関連記事も、毎号必ずと言っていいほど掲載されており、最新技術を生かした開発には欠かせない内容をタイムリーに読むことができます。

今回は、それらの記事の中から ASP.NET MVC のアクション フィルターに関する記事をご紹介します。

ASP.NET MVC には、コントローラー クラスやコントローラー アクションに属性ベースで特定の動作をアタッチするアクション フィルターと呼ばれる機能があります。アクション フィルターを用いることで、宣言的にアクション メソッドの実行前後などにさまざまな処理を挿入することが可能です。これは、アプリケーション処理ロジックの再利用や保守性などに有効で、著者が記事中で述べている通り、アスペクト指向の Web ソリューション開発に大きく役立ちます。

下記のサンプル コードは、Edit アクション メソッドに対してアクション フィルターの Authorize 属性を付加し、このメソッドの実行を認証されているユーザーに限定している例です。

[Authorize]
public ActionResult Edit(int id)
{
    ...
    return View();
}

この Authorize 属性をはじめ、OutputCache や ChildActionOnly, HandleError などの属性がアクション フィルターとして用意されています。
これらの、ASP.NET MVC であらかじめ実装されているアクション フィルター以外にも、IActionFilter などのインターフェースを実装することで、比較的容易にカスタム フィルターを作成することができます。記事中では、HTTP 圧縮をおこなうカスタム アクション フィルターの実装例を紹介していますので、ご一読ください。

また、11 月号の記事では、ASP.NET MVC の内部処理の解説をとおして、アクション フィルターを属性ベースで宣言的に設定するのではなく、コード内で動的に読み込む方法を紹介しています。
このアクション フィルター以外にも、ASP.NET MVC には数多くの機能や拡張ポイントが用意されています。シンプルでありながら高機能かつ拡張性の高い ASP.NET MVC の利点を生かした Web アプリケーション開発をお楽しみください。

関連リンク

ページのトップへ