为什么显示Asp.Net Core的内置验证错误消息而不是我的Fluent Validation?

我认为这将非常简单...

我有这个十进制属性:

[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.")]的方式在属性上指定错误消息,但这不是我要的。)

LB101355 回答:为什么显示Asp.Net Core的内置验证错误消息而不是我的Fluent Validation?

尝试一下。


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

本文链接:https://www.f2er.com/3145543.html

大家都在问