ASP.NET MVC: RedirectToAction avec des paramètres pour l'action POST
Cette question a été posée ici:
RedirectToAction avec le paramètre
Mais si j'ai deux actions avec le même nom, mais avec des paramètres différents? Comment puis-je rediriger vers le POST Terms
action au lieu de l'OBTENIR Terms
action.
public ActionResult Terms() {
//get method
}
[HttpPost]
public ActionResult Terms(string month, string year, int deposit = 0, int total = 0) {
//process POST request
}
source d'informationauteur Rosdi Kasim
Vous devez vous connecter pour publier un commentaire.
Tant pis les gars, en fait j'ai juste l'appel de la méthode directement au lieu d'utiliser
RedirectToAction
comme suit:Au lieu de:
Il est exact que vous pouvez appeler la méthode directement, mais je suggère fortement que vous repenser votre architecture/mise en œuvre.
Le Protocole HTTP embrasse l'idée d'sécurisé et les verbes. Coffre-fort verbes comme vous ne sont pas censés modifier l'état du serveur dans n'importe quel chemin, tandis que Dangereux des verbes comme POST, PUT faire modifier l'état. Par vous OBTENIR de l'appel de la méthode POST, vous êtes une violation de ce principe, car il n'est pas inconcevable que ton POST va être la modification de l'état.
Également les meilleures pratiques montrent que vous devriez limites les verbes à toutes vos actions, donc si le premier "Conditions" de la méthode est destinée à un, puis ajouter également la HttpGet attribut pour éviter à d'autres de Http actions d'être accepté par le serveur pour l'action.