D'éviter la Double Soumettre / Post sur ASP.NET MVC page

Je suis l'espoir de quelques commentaires sur la méthode que j'ai l'intention d'utiliser pour la prévention des enregistrements en double dans un ASP.NET MVC 4 application et les répercussions je n'ai pas bien pour l'expérience des utilisateurs.

Le formulaire web a six champs de saisie et un bouton "enregistrer" (ainsi que d'un bouton annuler), les Utilisateurs peuvent prendre jusqu'à 10 minutes en remplissant le formulaire.

Une fois que les champs sont soumis par l'intermédiaire d'un post de la page est redirigée sur la réussite ou l'échec d'une autre page, une fois que les données sont enregistrées dans une table de base de données à l'aide d'un nouveau Guid en tant que clé primaire.

Pour arrêter les utilisateurs en appuyant sur le bouton enregistrer de nombreuses fois, mais permet au navigateur de rediffuser la demande sur une connexion fermée j'ai l'intention de fournir le Guid pour les nouveaux records de la clé primaire comme un champ caché lorsque le formulaire est généré.

Si le reposter qui se passe, ou que l'utilisateur appuie sur enregistrer plusieurs fois, le serveur de base de données de rejeter le second poste de l'enregistrement en raison d'un double de la clé, qui je puisse vérifier et à faire face aux côté serveur.

Mais cela ne crée plus de problèmes pour moi?

  • Quel est le problème?
  • Le seul moment où il y a un problème avec mettre l'Id de Clé Primaire dans un champ caché est que les utilisateurs peuvent aller dans ce domaine et modifier la clé primaire et la mise à jour de chaque enregistrement dans la databse. maintenant, étant donné qu'ils sont Guid, il serait presque impossible de deviner un Guid qui ont déjà ben utilisés et placés dans une mise à jour au cours du premier utilisateur des formulaires , si vous avez été en utilisant un entier, alors je voudrais donc c'est une mauvaise idée
  • Avez-vous utilisé Bootstrap? Parce que c'automatiquement disabvles le bouton une fois cliqué et si ne pas utiliser jquery ou certaines chargeur ou masquer le bouton une fois cliqué jusqu'à recevoir u de réponse pour la requête post'
  • Actuellement, sans cela, de nouveaux records ont été répétées jusqu'à sept fois, lorsque les clients des réseaux sont occupés et que les usagers attendent une réponse plus rapide.
  • J'ai commencé la désactivation du bouton enregistrer, mais de temps en temps, il a laissé à l'utilisateur, sans aucun moyen d'avancer. Le formulaire a été bloqué, le serveur n'a pas obtenu le poste, et ils ont à retaper tout. Le problème est que le navigateur ne sait jamais si le serveur n'a pas obtenu le POSTE ou que le navigateur n'ai pas la réponse.
  • Double Possible de Comment puis-je éviter de multiples formulaire de soumission .NET MVC, sans l'aide de Javascript?

InformationsquelleAutor Old fart | 2015-01-13