相关疑难解决方法(0)

首次失败时停止流利验证

我正在为我的Request对象定义一个验证.我希望验证器在第一次失败时停止,而不仅仅是同一链上的验证器.在下面的示例中,如果我的TechnicalHeader对象为null,则在验证达到规则时,我会收到NullReference异常TechnicalHeader.MCUserid.

可怜的话,根据第一条规则的结果,我想对下面代码中的最后三条规则进行条件验证

using System;
using ServiceStack.FluentValidation;
using MyProj.Services.Models;

namespace MyProj.Services.BaseService.Validators
{
    public class BaseValidator<T> : AbstractValidator<T>
        where T : RequestBase
    {
        public BaseValidator()
        {
            RuleSet(ServiceStack.ApplyTo.Put | ServiceStack.ApplyTo.Post, 
                () =>
                {
                    this.CascadeMode = CascadeMode.StopOnFirstFailure;
                    RuleFor(x => x.TechnicalHeader).Cascade(CascadeMode.StopOnFirstFailure).NotNull().WithMessage("Header cannot be null");
                    RuleFor(x => x.TechnicalHeader).NotEmpty().WithMessage("Header cannot be null");
                    RuleFor(x => x.TechnicalHeader.Userid).NotEmpty().WithMessage("Userid cannot be null or an empty string");
                    RuleFor(x => x.TechnicalHeader.CabCode).GreaterThan(0).WithMessage("CabCode cannot be or less than 0");
                    RuleFor(x => x.TechnicalHeader.Ndg).NotEmpty().WithMessage("Ndg cannot be null or an empty string");
                }
            ); …
Run Code Online (Sandbox Code Playgroud)

validation fluentvalidation servicestack

16
推荐指数
3
解决办法
7801
查看次数