Utilisation de MVC4 avec FluentValidation. J'ai un champ avec deux règles dessus. La règle NotEmpty fonctionne comme prévu. La règle Matches semble se déclencher, mais le formulaire est malgré tout soumis, même si le message de validation apparaît comme s'il échouait à la validation.Le message FluentValidation s'affiche, mais le formulaire est quand même soumis.
J'ai le modèle de vue suivant et validateur:
public class ImpactedEntityViewModelValidator : AbstractValidator<ImpactedEntityViewModel>
{
public ImpactedEntityViewModelValidator()
{
RuleFor(x => x.ImpactedEntityDescription)
.Matches("[a-zA-Z0-9/ ]{1,}").WithMessage("Description can only contain letters, numbers, '/', and spaces.")
.NotEmpty().WithMessage("Description is required.");
}
}
[Validator(typeof(ImpactedEntityViewModelValidator))]
public class ImpactedEntityViewModel
{
public int? ImpactedEntityLUID { get; set; }
[Display(Name = "Impacted Entity Description")]
public string ImpactedEntityDescription { get; set; }
public bool? Deleted { get; set; }
}
Vue:
@model ChangeControlForm.Models.ImpactedEntityViewModel
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.EditorFor(model => model)
<p>
<input type="submit" value="Create" class="btn btn-default" />
</p>
}
Ajouté à Global Application_Start:
FluentValidation.Mvc.FluentValidationModelValidatorProvider.Configure();
Je ne sais pas comment cela est possible. Il ne sera pas soumis si le champ est vide, comme prévu. Si je saisis un "%" par exemple, le message de la règle Correspondances apparaîtra mais il sera immédiatement soumis après et écrit l'enregistrement. Y a-t-il quelque chose qui me manque?
Merci.
par la réponse de Michael Crook:
Ceci a résolu le problème:
$("form").submit(function() {
var form = $(this);
if (form.valid()) {
// do valid stuff
}
else {
return false;
}
});
réponse Per LeftyX:
Vérifié mes paquets NuGet et jQuery eu une mise à jour disponible. La mise à jour vers 2.1.4 a corrigé le problème et je n'ai pas besoin de la vérification supplémentaire sur soumettre.
Merci à tous.
Bon appel. J'ai mis à jour jQuery et maintenant je n'ai pas besoin de la vérification supplémentaire sur soumettre. Merci pour la suggestion!!! – Mike
Content d'avoir aidé Mike. À votre santé. – LeftyX