web-dev-qa-db-fra.com

GET et POST à la même action de contrôleur dans 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()

Cela ne semblait pas fonctionner. Aucune suggestion ?

86
Cranialsurge

Cela est possible en utilisant l'attribut AcceptVerbs. C'est un peu plus verbeux mais plus flexible.

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

Plus sur msdn .

128
Ryan Bair

Les actions répondent aux GET et aux POST par défaut, vous n'avez donc rien à spécifier:

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 HttpMethod en opérant sur la valeur HttpContext.Request.HttpMethod.

63
Kurt Schindler
[HttpGet]
public ActionResult SignIn()
{
}

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