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属性という短い名前が用意されている。