C# Fluent验证程序不';不要在应该的时候抛出错误
我有以下模型(所有代码简化)C# Fluent验证程序不';不要在应该的时候抛出错误,c#,.net,viewmodel,asp.net-mvc-5,fluentvalidation,C#,.net,Viewmodel,Asp.net Mvc 5,Fluentvalidation,我有以下模型(所有代码简化) 为什么我的验证器没有抛出异常?好吧,我认为当您使用SetCollectionValidator并且不验证集合的“父级”时,您不会出现错误(在这里,您尝试验证集合,但不验证父级(BiddingTierSetViewModel) 看到这个了吗 public class BiddingTierSetViewModel { public List<BiddingTierViewModel> BiddingTiers { get; set; } } pub
为什么我的验证器没有抛出异常?好吧,我认为当您使用SetCollectionValidator并且不验证集合的“父级”时,您不会出现错误(在这里,您尝试验证集合,但不验证父级(
BiddingTierSetViewModel
)
看到这个了吗
public class BiddingTierSetViewModel
{
public List<BiddingTierViewModel> BiddingTiers { get; set; }
}
public class BiddingTierViewModel
{
public decimal StartValue { get; set; }
public decimal? EndValue { get; set; }
public decimal StepAmount { get; set; }
}
public class BiddingTierSetViewModelValidator : AbstractValidator<BiddingTierSetViewModel>
{
public BiddingTierSetViewModelValidator(IValidator<BiddingTierViewModel> biddingTierViewModelValidator)
{
RuleFor(x => x.BiddingTiers).SetCollectionValidator(biddingTierViewModelValidator);
}
}
public class BiddingTierViewModelValidator : AbstractValidator<BiddingTierViewModel>
{
public BiddingTierViewModelValidator()
{
RuleFor(x => x.StartValue).GreaterThanOrEqualTo(0M);
}
}
var validator = new BiddingTierViewModelValidator();
var biddingTiers =
new List<BiddingTierViewModel>()
{
new BiddingTierViewModel()
{
StartValue = -1,
EndValue = 100
}
};
biddingTierSetViewModelValidator = new BiddingTierSetViewModelValidator(
validator);
biddingTierSetViewModelValidator.ShouldHaveValidationErrorFor(b => b.BiddingTiers,
biddingTiers);
FluentValidation.TestHelper.ValidationTestException : Expected a validation error for the property BiddingTiers