Mogę udekorować akcję za pomocą [AcceptVerbs (HttpVerb.Post)] / [AcceptVerbs (HttpVerbs.Get)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(string title)
{
// Do Something...
}
lub z atrybutami [HttpPost] / [HttpGet]
[HttpPost]
public ActionResult Create(string title)
{
// Do Something...
}
Czy są różne?
asp.net-mvc
asp.net-mvc-2
http-post
http-get
Lorenzo
źródło
źródło
[AcceptVerbs("GET")]
może zatrzymać generowanie wpisu dla tej akcji w dokumentach pomocy.Odpowiedzi:
Nic. Jedno jest skrótem od drugiego.
źródło
[HttpPost]
jest skrótem od[AcceptVerbs(HttpVerbs.Post)]
. Jedyna różnica polega na tym, że nie można używać[HttpGet, HttpPost]
(i podobnych) razem w tej samej akcji. Jeśli chcesz, aby akcja odpowiadała zarówno na GET, jak i POST, musisz użyć[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
.źródło
AcceptVerbs
Atrybut przyjmuje jeden parametr Flags. Ustawiasz wiele flag, oringując je.[HttpPost]
jest tylko skrótem dla[AcceptVerbs(HttpVerbs.Post)]
Nie ma mechanizmu dostępnego dla flag OR, jeśli używasz skrótu; dlatego AcceptVerbs nadal istnieje (poza przyczynami wstecznej kompatybilności).