如何使用 FluentValidation 验证 Guid 列表
How to validate a List of Guid using FluentValidation
我正在尝试使用 Fluent Validation 验证 Guid 列表。
我的 ID 列表应该至少有一个 Guid Id。我做了一些研究,发现类似的问题得到了回答,而我最接近的解决方案是像下面这样实施它,但它仍然不起作用。当我发出请求时,即使我发送带有值的 ID 列表,它也会给我错误消息,指出值不能为空。我做错了什么?
public class Data
{
public List<Guid> Ids{ get; set; }
}
public class DataValidator : AbstractValidator<Data>
{
public DataValidator()
{
RuleFor(d => d.Ids).SetCollectionValidator(new GuidValidator());
}
}
public class GuidValidator : AbstractValidator<Guid>
{
public GuidValidator()
{
RuleFor(x => x).NotNull().NotEmpty();
}
}
我也试过这个验证器,但没用:
public class DataValidator : AbstractValidator<Data>
{
public DataValidator()
{
RuleForEach(d => d.Ids).NotNull().NotEmpty();
}
}
您可以只链接验证器:
public class DataValidator : AbstractValidator<Data>
{
public DataValidator()
{
RuleFor(d => d.Ids)
.NotNull() //validates whether Ids collection is null
.NotEmpty() //validates whether Ids collection is empty
.SetCollectionValidator(new GuidValidator()); //validates each element inside Ids collection using GuidValidator
}
}
此外,由于 Guid
是一个结构,您不必在 GuidValidator
:
中使用 NotNull()
验证
public class GuidValidator : AbstractValidator<Guid>
{
public GuidValidator()
{
RuleFor(x => x).NotEmpty();
}
}
我正在尝试使用 Fluent Validation 验证 Guid 列表。
我的 ID 列表应该至少有一个 Guid Id。我做了一些研究,发现类似的问题得到了回答,而我最接近的解决方案是像下面这样实施它,但它仍然不起作用。当我发出请求时,即使我发送带有值的 ID 列表,它也会给我错误消息,指出值不能为空。我做错了什么?
public class Data
{
public List<Guid> Ids{ get; set; }
}
public class DataValidator : AbstractValidator<Data>
{
public DataValidator()
{
RuleFor(d => d.Ids).SetCollectionValidator(new GuidValidator());
}
}
public class GuidValidator : AbstractValidator<Guid>
{
public GuidValidator()
{
RuleFor(x => x).NotNull().NotEmpty();
}
}
我也试过这个验证器,但没用:
public class DataValidator : AbstractValidator<Data>
{
public DataValidator()
{
RuleForEach(d => d.Ids).NotNull().NotEmpty();
}
}
您可以只链接验证器:
public class DataValidator : AbstractValidator<Data>
{
public DataValidator()
{
RuleFor(d => d.Ids)
.NotNull() //validates whether Ids collection is null
.NotEmpty() //validates whether Ids collection is empty
.SetCollectionValidator(new GuidValidator()); //validates each element inside Ids collection using GuidValidator
}
}
此外,由于 Guid
是一个结构,您不必在 GuidValidator
:
NotNull()
验证
public class GuidValidator : AbstractValidator<Guid>
{
public GuidValidator()
{
RuleFor(x => x).NotEmpty();
}
}