Использование MVC4 с FluentValidation. У меня есть поле с двумя правилами. Правило NotEmpty работает так, как ожидалось. Правило совпадений, похоже, срабатывает, но форма все равно сохраняется, даже несмотря на то, что сообщение о проверке всплывает, как будто оно не проходит проверку.Появляется сообщение FluentValidation, но форма отправляется в любом случае
У меня есть следующая модель представления и валидатор:
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; }
}
Вид:
@model ChangeControlForm.Models.ImpactedEntityViewModel
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.EditorFor(model => model)
<p>
<input type="submit" value="Create" class="btn btn-default" />
</p>
}
Добавлен Global Application_Start:
FluentValidation.Mvc.FluentValidationModelValidatorProvider.Configure();
я не уверен, как это возможно. Он не будет отправлен, если поле осталось пустым, как и ожидалось. Например, если я укажу «%», появится сообщение для правила «Матчи», после чего оно будет немедленно отправляться после записи и записывать запись. Есть что-то, чего я не вижу, что может вызвать это?
спасибо. Ответ
Per Майкл Крук:
Это решало вопрос:
$("form").submit(function() {
var form = $(this);
if (form.valid()) {
// do valid stuff
}
else {
return false;
}
});
ответ Per LeftyX в:
Проверены мои пакеты NuGet и JQuery было обновления доступны. Обновление до 2.1.4 исправило проблему, и мне не нужна дополнительная проверка на отправку.
Спасибо всем.
Хороший звонок. Я обновил jQuery, и теперь мне не нужна дополнительная проверка для отправки. Спасибо за предложение !!! – Mike
Рад, что я помог Майку. Приветствия. – LeftyX