我有这个验证码
RuleFor(x => x.Name).NotEmpty().WithMessage("[[[Name is required.]]]");
const string sortWeightError = "[[[Sort weight must be a value between 1 and 10000.]]]";
RuleFor(x => x.SortWeight).NotEmpty().WithMessage(sortWeightError);
其中,Name是string
,SortWeight是int
。
当我验证SortWeight设置为0并且名称为空字符串时,两者都会失败。
但是一旦我也将SortWeight清除为一个空字符串(之前为0),那么Name(是名字,而不是SortWeight)即使它仍然是一个空字符串也会通过验证。
如果我将SortWeight设置为int?而不是int它全部按预期工作,除了它然后允许0我用GreaterThan修复。
但是,非常奇怪的行为,文档说它应该确保它不是null或空/空格字符串无论哪种类型。最奇怪的是,当我传入一个空字符串时,它仍然没有使SortWeight字段失败,但它传递了另一个应该总是失败的字段(Name),因为它总是有一个空字符串。