comment vérifier quel événement a le poste de retour dans asp.net mvc demande
-
13-09-2019 - |
Question
J'ai une vue et un contrôleur dans mon ASP.net MVC application.
J'ai un bouton « Envoyer » et un bouton « Annuler » à mon avis.
Lorsque je clique sur l'un des botton ci-dessous l'action sera déclenchée.
AcceptVerbs (HttpVerbs.Post)
public ActionResult Résultat ()
{
}
Maintenant, la question est de savoir comment je vais savoir dans mon public ActionResult Résultat (), que ce soit après retour dû au fait de « Soumettre » ou « Annuler » ??
La solution
vous pouvez essayer comme
function OnBeginRequest(sender, args) {
var postBackElement = args.get_postBackElement();
if ((postBackElement.id == '<%= btnSave.ClientID %>')
{
}
}
Autres conseils
Vous pouvez résoudre le problème en procédant comme suit:
i. Placez un champ caché appelé « annuler » sous la forme de votre vue. Donnez-lui une valeur par défaut de false .
ii. En cas onclick pour votre bouton Annuler, ajoutez le script suivant:
document.getElementById('cancel').value = true; document.getElementById('myForm').submit();
Changement 'myForm' être le nom de votre formulaire.
iii. Changer à la suite de la signature de la méthode pour le résultat ():
public ActionResult Result(bool cancel)
Par modèle de liaison, la valeur de votre champ caché « annuler » sera accessible à la signature de votre méthode d'action.
Merci pour les réponses. Un plus je suis arrivé est la solution,
public ActionResult Result()
{
if (Request.Params.ToString().IndexOf("btnSubmit") > 0)
//
else
//
}
Je suggère que votre bouton « annuler » ne doit pas soumettre le formulaire. Il y a plusieurs façons de gérer cela, mais la plus simple serait d'avoir un événement onclick javascript sur le bouton qui permet d'y retourner la page précédente. (history.go(-1)
) Si cela ne répond pas à vos besoins, vous pouvez également spécifier un itinéraire spécifique pour naviguer. Le plus complexe serait d'intercepter le clic sur le côté client et décider quelle route a frappé, mais je généralement que faire si je veux avoir plusieurs boutons de soumission du formulaire qui frappera différentes actions, et c'est une situation assez rare.