asp.net mvc 3 - ajax formulaire de soumission et de validation
Je suis désolé si cela a été demandé déjà, mais j'ai été à la recherche de quelque temps, mais tout ce que j'ai trouvé sont plutôt anciens posts (mvc1, mvc2).
J'ai un formulaire que j'aimerais soumettre via Ajax.
Cette ressemble à cela pourrait fonctionner, mais ne couvre pas la validation côté serveur.
1) je ne suis pas sûr si je devrais utiliser le AjaxHelper.BeginForm
ou utiliser des appels jquery ($.ajax)
? Qu'est-ce que l'approche préconisée ici?
2) Comment puis-je gérer côté client et serveur de validation? Je suis en espérant que le framework mvc fournit intégré dans le mécanisme pour traiter cela?
Il y a quelques validations qui, j'en suis seulement à faire côté serveur. En utilisant un ValidationSummary
encore travailler ici?
Je suis en utilisant asp.net mvc3/rasoir avec unobtrussive de validation javascript.
Merci!
Edit: (comme demandé par Bobby B ci-dessous).
Cela a été ajoutée mois après avoir posé la question en tant qu'utilisateur voulais savoir comment utiliser AjaxHelper
C'est le code javascript que j'ai utilisé:
<script type="text/javascript">
function ajaxValidate() {
return $('form').validate().form();
}
function getGbPostSuccess(ajaxContext){
//.... it is not necessary to do anything here.
}
function showFaliure(ajaxContext){
//handle failure
}
Extrait de code HTML:
@using (Ajax.BeginForm("Index", "Home", new AjaxOptions
{
UpdateTargetId = "form1",
InsertionMode = InsertionMode.Replace,
OnBegin = "ajaxValidate",
OnSuccess = "getGbPostSuccess",
OnFailure = "showFaliure"
}))
{
Vous devez vous connecter pour publier un commentaire.
J'ai été en utilisant malsup de jQuery forme de plugin pendant un certain temps à cet effet. Je suis honnêtement pas familier avec AjaxHelper, mais ne ressembler qu'il va faire ce que vous cherchez. Autant que faire à la fois côté client et serveur de validation, tout cela devrait se produire principalement automatiquement aussi longtemps que vous êtes à l'aide de la liaison du modèle et les attributs du Système.DataAnnotations espace de noms.
Si vous faites votre propre personnalisé validation côté serveur, vous pouvez soit créer votre propre attribut validation par la création d'un attribut qui implémente ValidationAttribute, ou tout simplement ajouter des erreurs de validation par l'appel de ModelState.Erreurs.Ajouter() (ou quelque chose autour de là, je n'ai pas de référence à portée de main)
Pour le côté client, MVC va générer infoclient de validation pour vous sur la base des DataAnnotations attributs sur votre modèle.
MVC.NET 3 a déjà cette sortie de la boîte. Assurez-vous juste d'avoir ClientValidationEnabled activé dans le web.config. Vérifier cette