Я думал, что это будет довольно просто ...
У меня есть это десятичное свойство:
[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.")]
, но я не об этом спрашиваю.)