ASP.NET MVC 3 Plusieurs Soumettre des Entrées dans Un Formulaire
Je rencontre actuellement un problème avec plusieurs boutons d'action dans la même forme.
Le premier bouton effectuer la vérification tandis que le second bouton enregistrer le profil. Le troisième simple de rediriger l'utilisateur de la page, mais ils sont toujours tenus de passer par le contrôleur de certains à des fins de suivi. Dernier bouton supprimer. Parce qu'ils sont placés ensemble et j'ai besoin d'ModelBinding transmis par la POSTE, il est impossible de les séparer en plusieurs formes.
Actuellement, afin de différencier l'action qui est en train d'être cliqué, j'ai caché entrée dans mon formulaire et onclick, javascript serait mise à jour le caché d'entrée de sorte qu'il sera transmise au contrôleur.
La raison que j'ai fait, c'est parce que, pour d'étranges raisons, FormCollection ne veut pas tenir ma de soumettre les valeurs. J'ai essayé d'accéder aux boutons de contrôleur via
formCollection["verify"]
Mais il s'avère être null. À la fois le nom et l'identifiant de l'envoi d'entrée est fixé à vérifier.
J'ai aussi essayé beaucoup d'autres suggestions comme cette et cette mais en vain. Est-il une meilleure approche de mon problème sans l'aide de javascript pour modifier caché entrées?
Vous devez vous connecter pour publier un commentaire.
La meilleure approche consiste à séparer les actions de la manipulation des différents appels de bouton comme expliqué dans cet article.
Si vous voulez avoir une vilaine action de faire tous les trucs ensuite, vous pouvez donner à vos boutons de soumission noms:
Vous n'avez pas besoin de tous les champs cachés ou javascript. Et puis dans votre contrôleur de l'action que vous devriez vérifier pour la valeur de la
btn
paramètre (qui sera évidemment une partie de vous-modèle de vue):Bien sûr, si vous suivez mes conseils, et de séparer vos actions (comme indiqué dans l'article):
et puis:
qui est beaucoup plus propre code qui ne viole pas le Principe de Responsabilité Unique.
- Je faire quelque chose de légèrement différent;
Alors vous pouvez obtenir les valeurs à l'aide;
Merci,
Matt