Asp.net mvc 在整数属性上使用NotEmpty进行流畅的验证
我有以下代码:Asp.net mvc 在整数属性上使用NotEmpty进行流畅的验证,asp.net-mvc,fluentvalidation,Asp.net Mvc,Fluentvalidation,我有以下代码: public class NewsEditViewDataValidator : AbstractValidator<NewsEditViewData> { public NewsEditViewDataValidator() { // Status unique identifier cannot be empty // Status unique identifier must be greater or
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
}
}
公共类NewsEditViewDataValidator:AbstractValidator
{
公共NewsEditViewDataValidator()
{
//状态唯一标识符不能为空
//状态唯一标识符必须大于或等于1
RuleFor(x=>x.StatusId)
.NotEmpty()
.WithMessage(“需要状态”)
GreaterThanOrEqualTo先生(1)
.WithMessage(“状态唯一标识符必须大于或等于1”);
//其他规则集
}
}
StatusId是一个整数。在这种情况下NotEmpty是如何工作的?它验证了什么?整数还是字符串?对于检查整数是否为空的这一部分,单元测试是什么样子的
这用于验证我的MVC 3应用程序中的下拉列表。验证在视图上运行良好。更重要的是状态唯一标识符不能小于1。我想触发这个来验证我的对象。什么时候这样做不会空也不会火?是否有优先选择哪一个将首先被解雇?如果StatusId为0,将触发哪个规则集?如果是-1?在检查业务对象的id时,我不想空着使用视图和大于或等于0的QUALTO。有什么建议吗?看看:
NotEmpty验证器
描述:确保指定的属性不为null、空字符串或空白(或值类型的默认值,例如int的0)
因此
NotEmpty()
将仅避免该属性的默认值(0)。我建议您下载源代码,并在不确定时查看代码/测试
StatusId
是一个整数
。在这种情况下,NotEmpty
是如何工作的?
它验证了什么
StatusId的值是其类型的默认值。(0)
整数还是字符串
StatusId的类型,int
检查
整数
不是空的吗
这用于验证我的MVC 3应用程序中的下拉列表。这个
验证在视图上运行良好。大于或等于
的部分是
状态唯一标识符不能小于1
。这是我想要的
触发以验证我的对象。什么时候这样做将NotEmpty
还不火吗
使用when或除非指定何时应测试或不应测试规则
是否有优先选择哪一个将首先被解雇
我相信这是按照您指定的顺序进行的
如果StatusId
为0
将触发哪个规则集
根据您设置的级联选项,验证将在出现第一个错误时失败,或者检查属性的其他规则
如果是-1
第二条规则将失败
我希望NotEmpty
在检查业务对象的id时使用视图和greater或qualto
。有什么建议吗?@Brendan Vogt用NotNull()代替NotEmpty()再看看我的问题。如果我将0传递给ID,哪个规则将首先触发,因为如果存在0,这两个规则都将触发。我如何知道偏好的顺序?我会接受这个答案,但在未来,试着回答一个问题,而不是半个问题。@Brendan Vogt:1)事实上,你的“问题”是由9个不同的问题组成的——其中至少有7个问题是通过上面的引文回答的。2) 我不知道解析顺序,但我想它将与您在规则声明中使用的顺序相同(您知道您可以调试它,对吗?)。3) 你似乎对我的回答感到不安,这很奇怪,因为我并没有冒犯你的意思。4) 如果我的回答不让你满意,那就不要接受。这就是为什么如此,毕竟——我们应该只接受我们满意的答案。
var validator = new NewsEditViewDataValidator();
validator.ShouldHaveValidationErrorFor(x => x.StatusID, 0);