「ASP.NET MVC/セレクター」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Administrator
1行目: 1行目:
[[ASP.NET MVC]]の'''セレクター'''とは、アクションメソッド(コントローラークラスのメソッド)に、[[属性]]([[Attribute]])を用いて、コントローラーによる[[アクション]]の振り分け選択する機能である。
+
[[ASP.NET MVC]]の'''セレクター'''とは、[[アクションメソッド]]([[コントローラークラス]]の[[メソッド]])に、[[属性]]([[Attribute]])を用いて、[[コントローラー]]による[[アクション]]の振り分け選択する機能である。
  
ASP.NET MVCの規定値ではメソッド名がアクション名になるが、ActionName属性(ActionNameAttributeクラス)を付けることでアクション名を明示することもできる。この際にセレクターを用いると、同一アクション名でPOSTやGETなどの条件でアクションメソッドを切り替えるということが可能になる。
+
[[ASP.NET MVC]]の規定値ではメソッド名がアクション名になるが、ActionName属性(ActionNameAttributeクラス)を付けることでアクション名を明示することもできる。この際にセレクターを用いると、同一アクション名でPOSTやGETなどの条件で[[アクションメソッド]]を切り替えるということが可能になる。
 
<source lang="csharp">
 
<source lang="csharp">
 
     public class HomeController : Controller
 
     public class HomeController : Controller
21行目: 21行目:
 
</source>
 
</source>
  
なお、AcceptVerbs(HttpVerbs.Post)などの部分は、記述が長ったらしいということで、ASP.NET MVC 2からHttpPost属性やHttpGet属性という短い名前が用意されている。
+
なお、AcceptVerbs(HttpVerbs.Post)などの部分は記述が長ったらしいということで、[[ASP.NET MVC 2]]からHttpPost属性やHttpGet属性という短い名前が用意されている。
 +
 
 +
== 主なセレクタークラス ==
 +
* [[ActionMethodSelectorAttribute クラス (System.Web.Mvc)]]
 +
** AcceptVerbsAttribute クラス (System.Web.Mvc)]]
 +
** HttpDeleteAttribute クラス (System.Web.Mvc)]]
 +
** HttpGetAttribute クラス (System.Web.Mvc)]]
 +
** HttpPostAttribute クラス (System.Web.Mvc)]]
 +
** HttpPutAttribute クラス (System.Web.Mvc)]]
 +
** NonActionAttribute クラス (System.Web.Mvc)]]
 +
* ActionNameSelectorAttribute クラス (System.Web.Mvc)]]
 +
** ActionNameAttribute クラス (System.Web.Mvc)]]
 +
 
 +
== セレクターの独自実装 ==
 +
基本は[[ActionMethodSelectorAttribute クラス (System.Web.Mvc)|ActionMethodSelectorAttributeクラス]]を継承、IsValidForRequestメソッドをオーバーライドし、その中に条件を書くことで独自のセレクターを作ることができる。
  
 
== 関連項目 ==
 
== 関連項目 ==
30行目: 44行目:
 
== 参考文献 ==
 
== 参考文献 ==
 
<references/>
 
<references/>
 +
 
== 外部リンク ==
 
== 外部リンク ==
  
 
{{stub}}
 
{{stub}}

2012年5月18日 (金) 04:21時点における版

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 クラス (System.Web.Mvc)
    • AcceptVerbsAttribute クラス (System.Web.Mvc)]]
    • HttpDeleteAttribute クラス (System.Web.Mvc)]]
    • HttpGetAttribute クラス (System.Web.Mvc)]]
    • HttpPostAttribute クラス (System.Web.Mvc)]]
    • HttpPutAttribute クラス (System.Web.Mvc)]]
    • NonActionAttribute クラス (System.Web.Mvc)]]
  • ActionNameSelectorAttribute クラス (System.Web.Mvc)]]
    • ActionNameAttribute クラス (System.Web.Mvc)]]

セレクターの独自実装

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

関連項目

参考文献


外部リンク