Почему вместо моего Fluent Validation отображается сообщение об ошибке проверки в Asp.Net Core? - PullRequest
0 голосов
/ 07 ноября 2019

Я думал, что это будет довольно просто ...

У меня есть это десятичное свойство:

[Column(TypeName = "decimal(18,2)")]
public decimal ProjectBudget { get; set; }

Я хочу, чтобы входные данные были положительными числами. Вот два правила, которые я пробовал:

RuleFor(x => x.ProjectBudget.ToString())
    .Matches("^[0-9]*$").WithMessage("Only positive numbers, please.");

RuleFor(x => x.ProjectBudget)
    .GreaterThanOrEqualTo(0).WithMessage("Only positive numbers, please.");

В обоих случаях, если я ввожу "sdfhj", я получаю сообщение об ошибке:

Значение 'sdfhj'недопустимо для ProjectBudget.

Это сообщение об ошибке встроенной проверки Asp.Net Core.

Почему мое сообщение об ошибке «Только положительные числа, пожалуйста». появиться?

(я знаю, что могу указать сообщение об ошибке в свойстве, используя что-то вроде [Range(0, (double)decimal.MaxValue, ErrorMessage = "Only positive numbers, please.")], но я не об этом спрашиваю.)

1 Ответ

0 голосов
/ 07 ноября 2019

Попробуйте это.


            services.AddControllersWithViews()
               .AddFluentValidation(options =>
                {
                   options.RegisterValidatorsFromAssembly(Assembly.GetEntryAssembly());
                   options.ImplicitlyValidateChildProperties = true;
                   options.RunDefaultMvcValidationAfterFluentValidationExecutes = false;
                });

...