我在项目中使用Fluent Validation
在我的ViewModel中,我有一个string类型的属性,有效值只是表示正整数的字符串
因此,我创建了一个简单的IntegerValidator
,用于检查字符串是否可以解析为整数。这有效。
问题是,如何添加规则,它必须是一个正整数?我想使用现有的Greater Than Validator,但将其链接到我的字符串属性的规则会将其比较为string
,而不是解析为int
。怎么做到这一点?
我想做的样本(请注意ToInt()
):
RuleFor(x => x.BatchNumber).SetValidator(new IntegerValidator())
.ToInt().GreaterThan(0);
答案 0 :(得分:1)
您可以随时使用自定义方法......
RuleFor(x=>x.BatchNumber).Must(BeAPositiveIntegerString);
private bool BeAPositiveIntegerString(string batchNumber)
{
// check both parse ability and greater than (once parsed)
}
可重用性较低但可行...