为什么显示 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.")]之类的东西在属性上指定错误消息,但这不是我想要的。(

试试这个。


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

相关内容

最新更新