ASP.NET MVC/セレクター

提供: MonoBook
ナビゲーションに移動 検索に移動

ASP.NET MVCセレクターとは、アクションメソッドコントローラークラスメソッド)に、属性Attribute)を用いて、コントローラーによるアクションの振り分け選択する機能である。

ASP.NET MVCの規定値ではメソッド名がアクション名になるが、ActionName属性(ActionNameAttributeクラス)を付けることでアクション名を明示することもできる。この際にセレクターを用いると、同一アクション名でPOSTやGETなどの条件でアクションメソッドを切り替えるということが可能になる。

    public class HomeController : Controller
    {
        [ActionName("Index"), AcceptVerbs(HttpVerbs.Get)]
        public ActionResult IndexGet()
        {
            // GETの時はこちら
            return View();
        }

        [ActionName("Index"), AcceptVerbs(HttpVerbs.Post)]
        public ActionResult IndexPost()
        {
            // POSTの時はこちら
            return View();
        }
    }

なお、AcceptVerbs(HttpVerbs.Post)などの部分は記述が長ったらしいということで、ASP.NET MVC 2からHttpPost属性やHttpGet属性という短い名前が用意されている。

主なセレクタークラス

セレクターの独自実装

基本はActionMethodSelectorAttributeクラスを継承、IsValidForRequestメソッドをオーバーライドし、その中に条件を書くことで独自のセレクターを作ることができる。

関連項目

参考文献


外部リンク