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