Quelle est la bonne façon de procéder à la validation de formulaires AJAX multiparamètres avec jQuery et ASP.NET MVC?

StackOverflow https://stackoverflow.com/questions/1615144

Question

J'ai un formulaire d'inscription pour un site Web qui doit vérifier si une adresse électronique existe déjà pour un identifiant d'entreprise donné. Lorsque l'utilisateur clique ou quitte le champ de courrier électronique (événement de flou), je veux que jQuery s'éteigne et fasse une demande AJAX afin que je puisse ensuite avertir l'utilisateur dont il a besoin pour choisir une autre adresse.

Dans mon contrôleur, j'ai une méthode comme celle-ci:

public JsonResult IsEmailValid(int companyId, string customerNumber)
{            
  return Json(...);
}

Pour que cela fonctionne, je devrai mettre à jour mes itinéraires afin qu'ils pointent directement vers / Home / IsEmailValid et les deux paramètres {companyId} et {customerNumber } . Cela semble être "hacking". dans le système de routage et je suppose qu’il existe peut-être une alternative plus propre.

Y a-t-il un "bon" " ou un moyen recommandé pour accomplir cette tâche?

EDIT: Ce que je voulais dire par routes est que le fait de passer un paramètre supplémentaire ({customerNumber}) dans l’URL (/ Home / IsEmailValid / {companyId} / {customerNumber}) ne fonctionnera pas avec le mappage de route par défaut.

Était-ce utile?

La solution

Vous pouvez utiliser le plug-in de validation jQuery pour le faire.

Vous allez devoir mettre en œuvre votre propre méthode, mais comme ceci:

$.validator.addMethod("checkCompanyEmail", function(value, element) {
    var email = value;
    var companyID = //get the companyID
    var result;
    //post the data to server side and process the result and return it
    return result;
}, "That company email is already taken.");

Enregistrez ensuite votre méthode de validation:

$("#the-form").validate({
   rules: { email: { required: true, "checkCompanyEmail" : true } } 
});

PS. Je ne comprends pas pourquoi vous devez "bidouiller". avec routage pour cela.

Autres conseils

à partir de la documentation de validation sous la méthode distante

    remote: {
      url: "check-email.php",
      type: "post",
      data: {
        username: function() {
         return $("#username").val();
        }
      }
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top