「ASP.NET MVC/セレクター」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator |
imported>Administrator 細 (→主なセレクタークラス) |
||
(同じ利用者による、間の1版が非表示) | |||
1行目: | 1行目: | ||
− | [[ASP.NET MVC]]の'''セレクター''' | + | [[ASP.NET MVC]]の'''セレクター'''とは、[[アクションメソッド]]([[コントローラークラス]]の[[メソッド]])に、[[属性]]([[Attribute]])を用いて、[[コントローラー]]による[[アクション]]の振り分け選択する機能である。 |
− | ASP.NET | + | [[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) | + | なお、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クラスを継承、IsValidForRequestメソッドをオーバーライドし、その中に条件を書くことで独自のセレクターを作ることができる。
関連項目[編集 | ソースを編集]
参考文献[編集 | ソースを編集]