在整数属性上使用NotEmpty进行流畅验证

Bre*_*ogt 4 asp.net-mvc fluentvalidation

我有以下代码:

public class NewsEditViewDataValidator : AbstractValidator<NewsEditViewData>
{
     public NewsEditViewDataValidator()
     {
          // Status unique identifier cannot be empty
          // Status unique identifier must be greater or equal to 1
          RuleFor(x => x.StatusId)
               .NotEmpty()
               .WithMessage("Status is required")
               .GreaterThanOrEqualTo(1)
               .WithMessage("Status unique identifier must be greater or equal to 1");

          // Other rule sets
     }
}
Run Code Online (Sandbox Code Playgroud)

StatusId是一个整数.NotEmpty在这种情况下如何工作?它验证了什么?整数还是字符串?对于此部分检查整数是否为空,单元测试会是什么样的?

这用于验证我的MVC 3应用程序中的下拉列表.验证在视图上​​运行良好.GreaterThanOrEqualTo部分是状态唯一标识符永远不会小于1.这我想触发验证我的对象.什么时候这样做NotEmpty也不会开火?是否首先要解雇哪一个?如果StatusId为0,哪个规则集将触发?如果是-1?我希望NotEmpty在检查业务对象的id时使用视图和GreaterThanOrEqualTo.有什么建议?

rse*_*nna 14

看看文档:

NotEmpty Validator

描述:确保指定的属性不为null,空字符串或空格(或值类型默认值,例如0表示int).

因此,NotEmpty()将仅避免该属性的默认值(0).

  • @Brendan Vogt:1)事实上,你的"问题"是由9个不同的问题组成的 - 其中至少有7个问题仅通过上述引用来回答.2)我不知道解决方案的顺序,但是我认为*它将与您在规则声明中使用的顺序相同(并且您知道您可以**调试它,对吧?).3)你似乎对我的回答感到不安,这很奇怪,因为我并不是指任何进攻.4)如果我的回答没有取悦你,那么**不接受它**.这就是为什么SO存在,毕竟 - 我们应该只接受我们满意的答案. (9认同)