.net 在abp中进行流畅验证

cgh8pdjw  于 2022-11-19  发布在  .NET
关注(0)|答案(1)|浏览(216)

我在Application.Contracts项目中的ItemDto类上进行了Fluent验证,然后在Application.Services中进行了Fluent验证。我有一个API方法,用于接收ItemDto,然后我从swagger中调用此方法,我希望Fluent验证在请求发送到服务器之前触发,就像我在使用数据注解时从swagger中调用API方法,但未发送必填字段,然后swagger在请求发送到服务器之前返回所需的验证消息一样。
我使用的是abp框架

public class ItemDtoValidator:AbstractValidator<ItemDto>
{
    public ItemDtoValidator()
    {
        RuleFor(x => x.Name).NotEmpty();
        RuleFor(x => x.price).NotNull();
        RuleFor(x => x.Quantity).NotNull();
    }
}

,然后在Application.Contracts模块中添加了typeof(AbpFluentValidationModule)和

public override void ConfigureServices(ServiceConfigurationContext context)
{
  context.Services.AddScoped<IValidator<ItemDto>, ItemDtoValidator>();
}

我的服务中的服务已添加

public async Task<ItemResponseDto> AddItemAsync(ItemDto item)
{
  // buisness code to add item
 }
whitzsjs

whitzsjs1#

你必须使用RuleFor(x => x.Name).NotNull(),其他属性也是如此。它还取决于数据类型的默认值,例如int0,所以在这种情况下你需要检查0。

相关问题