Quantcast
Channel: Fluent Validation for .NET
Viewing all articles
Browse latest Browse all 1917

New Post: Help getting validation failure field to display correct path

$
0
0
Given a representative class as follows
public class Foo
{
     public IEnumerable<Bar> Bars { get; set; }
}

public class Bar
{
     public IEnumerable<string> Values { get; set; }
}
If I validate as follows
public class FooValidator : AbstractValidator<Foo>
{
    public FooValidator()
    {
        RuleFor(x => x.Bars).SetCollectionValidator(new BarValidator());
    }

    private class BarValidator : AbstractValidator<Bar>
    {
        public BarValidator()
        {
            RuleForEach(x => x.Values).NotEmpty();
        }
    }
}
The field is output as "Bars[0].Bars[0].Values[0]"

If I validate as follows
public class FooValidator : AbstractValidator<Foo>
{
    public FooValidator()
    {
        RuleFor(x => x.Bars).SetCollectionValidator(new BarValidator());
    }

    private class BarValidator : AbstractValidator<Bar>
    {
        public BarValidator()
        {
            RuleFor(x => x.Values).SetCollectionValidator(new ValueValidator());
        }
    }

    private class ValueValidator : AbstractValidator<string>
    {
        public ValueValidator()
        {
            RuleFor(x => x).NotEmpty().WithName("Value");
        }
    }
}
The field is output as "Bars[0].Values[0].Value"

How do I get it to output as "Bars[0].Values[0]"?

Viewing all articles
Browse latest Browse all 1917

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>