HttpPost vs HttpGet attributs dans MVC: Pourquoi utiliser HttpPost?
Nous avons donc [HttpPost], qui est un attribut facultatif. Je comprends cette limite à l'appel de sorte qu'il peut seulement être fait par une requête HTTP POST. Ma question est pourquoi voudrais-je faire cela?
Vous devez vous connecter pour publier un commentaire.
Imaginer la suite:
Cela ne serait pas possible, à moins que le ActionMethodSelectorAttributes
HttpGet
etHttpPost
lorsqu'il est utilisé.Cela rend très simple pour créer une vue d'édition. Tous les liens d'action, juste des points de la droite vers le contrôleur. Si le modèle de vue valide faux, vous venez de revenir directement à l'affichage modifier à nouveau.
Je vais être courageux et dire que c'est la meilleure pratique quand il s'agit de CRUDish choses dans ASP.NET MVC.
EDIT:
@Premier plan a demandé ce qui était nécessaire en vue d'accomplir la poste. C'est simplement un formulaire avec la méthode POST.
À l'aide d'un Rasoir, cela ressemblerait à quelque chose comme ça.
Ce qui rend le code HTML suivant:
Lorsque le formulaire est soumis, il va effectuer une requête Http Post pour le contrôleur. De l'action avec la
HttpPost
attribut va traiter la requête.Son de sorte que vous pouvez avoir de multiples Actions qui utilisent le même nom, vous pouvez utiliser le HttpPost attribut pour marquer la méthode est prise en charge sur une requête Post comme ceci:
Autant que les meilleures pratiques pour HttpGet et HttpPost, il est de bonne pratique dans tout développement web à utiliser HttpPost pour créer, mettre à jour et les Suppressions (modification de données). Post sont bons, parce qu'ils exigent la soumission d'un formulaire, ce qui empêche les utilisateurs de cliquer sur empoisonné liens(par exemple, [ https://www.mysite.com/Delete/1%5D ) dans les e-mails, réseaux sociaux, etc. et de modification des données par inadvertance. Si vous êtes fondamentalement juste la Lecture des données HttpGet fonctionne très bien.
Voir OWASP pour de plus amples considérations sur la sécurité et le pourquoi de la validation jeton augmente la sécurité.
C'est principalement de sorte que vous pouvez avoir deux Actions avec le même nom,
celui qui est utilisé sur les GETs et peut-être affiche un formulaire pour la saisie par l'utilisateur et l'autre étant utilisé sur les Postes lorsque l'utilisateur soumet le formulaire affiché par les OBTENIR. Si les Actions ne sont pas différenciés de cette façon, une erreur se produit en raison d'être dans l'impossibilité de résoudre l'Action vise à répondre à la demande.