相互依赖的链接规则

发布于 2024-12-16 02:32:04 字数 663 浏览 0 评论 0原文

我在我的项目中使用 Fluent Validation
在我的 ViewModel 中,我有一个字符串类型的属性,有效值只是表示正整数的字符串。
因此,我创建了一个简单的 IntegerValidator 来检查字符串是否可以解析为整数。这有效。
问题是,如何加上必须是正整数的规则呢?我想使用现有的大于验证器,但将它链接到我的字符串属性的规则会将其作为 string 进行比较,而不是作为已解析的 int 进行比较。如何实现这一目标?

我想要做的示例(注意 ToInt()):

RuleFor(x => x.BatchNumber).SetValidator(new IntegerValidator())
                           .ToInt().GreaterThan(0);

I am using Fluent Validation in my project.
In my ViewModel I have a property that is of type string, valid values are only string representing positive integers.
So, I created a simple IntegerValidator that checks whether or not the string can be parsed into an integer. This works.
Problem is, how to add the rule that it must be a positive integer? I would like to use the existing Greater Than Validator, but chaining it to the rule for my string property would compare it as a string, not as a parsed int. How to achieve this?

Sample of what I would like to do (note the ToInt()):

RuleFor(x => x.BatchNumber).SetValidator(new IntegerValidator())
                           .ToInt().GreaterThan(0);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

柒七 2024-12-23 02:32:04

您始终可以使用自定义方法...

RuleFor(x=>x.BatchNumber).Must(BeAPositiveIntegerString);

private bool BeAPositiveIntegerString(string batchNumber)
{
    // check both parse ability and greater than (once parsed)
}

可重用性较低,但可以工作...

You could always use a custom method...

RuleFor(x=>x.BatchNumber).Must(BeAPositiveIntegerString);

private bool BeAPositiveIntegerString(string batchNumber)
{
    // check both parse ability and greater than (once parsed)
}

Less reusability but would work...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文