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

问题描述 投票:0回答:1

我以为这会很简单...

我具有此十进制属性:

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

c# asp.net-core fluentvalidation
1个回答
0
投票

我认为这是因为属性的类型为十进制,并且.net core不接受请求。流利的验证甚至不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.