Lequel de ces deux scénarios est la meilleure pratique dans ASP.NET MVC?Dans ASP.NET MVC doit-il se poster un formulaire ou une autre action?
1 Message à l'auto
Dans la vue que vous utilisez
using (Html.BeginForm) {
...
}
Et dans le contrôleur vous avez
[HttpGet]
public ActionResult Edit(int id)
[HttpPost]
public ActionResult Edit(EditModel model)
2 Poster de Modifier pour sauver
Dans la vue que vous utilisez
using (Html.BeginForm("Save", "ControllerName")) {
Et dans le contrôleur vous avez
[HttpGet]
public ActionResult Edit(int id)
[HttpPost]
public ActionResult Save(EditModel model)
Résumé
Je peux voir les avantages de chacun d'entre eux, l'ancien vous donne un plus reposant style, avec la même adresse utilisée conjointement avec le verbe HTTP correct (GET, POST, PUT, DELETE et ainsi de suite). Ce dernier a un schéma d'URL qui rend chaque adresse très spécifique.
Quelle est la bonne façon de procéder?
Je ne veux pas commencer la discussion de côté à ce sujet, mais je voulais souligner qu'il y a un léger problème avec les spécifications W3 qui signifie que je ne vais pas utiliser PUT à tout moment: http: //www.w3 .org/TR/html401/interact/forms.html # adef-method - mais votre réponse est toujours correcte en termes de REST. – Fenton
C'est pourquoi vous utilisez l'assistant 'Html.HttpMethodOverride'. Votre formulaire HTML peut-être pas, mais d'autres consommateurs oui. –