86 votes

GET et POST vers la même action de contrôleur en ASP.NET MVC

J'aimerais qu'une seule action réponde à la fois aux Gets et aux Posts. J'ai essayé ce qui suit

[HttpGet]
[HttpPost]
public ActionResult SignIn()

Ça n'a pas l'air de marcher. Vous avez des suggestions ?

129voto

EvilRyry Points 1085

Cela est possible grâce à l'attribut AcceptVerbs. C'est un peu plus verbeux mais plus souple.

[AcceptVerbs(HttpVerbs.Get|HttpVerbs.Post)]
public ActionResult SignIn()
{
}

En savoir plus msdn .

63voto

Kurt Schindler Points 8106

Les actions répondent à la fois aux GET et aux POST par défaut, vous n'avez donc pas besoin de spécifier quoi que ce soit :

public ActionResult SignIn()
{
    //how'd we get here?
    string method = HttpContext.Request.HttpMethod;
    return View();
}

Selon vos besoins, vous pouvez toujours exécuter une logique différente en fonction de l'HttpMethod en opérant sur la valeur HttpContext.Request.HttpMethod.

1voto

Neil Outler Points 68
[HttpGet]
public ActionResult SignIn()
{
}

[HttpPost]
public ActionResult SignIn(FormCollection form)
{
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X