Filter 如何在.net core中创建自定义筛选器

Filter 如何在.net core中创建自定义筛选器,filter,.net-core,model-binding,Filter,.net Core,Model Binding,我尝试了下列方法之一,但没有成功。 1.验证模型绑定中的属性(用户名)值与模型中其他属性的值(id,以查找用户)。 2.验证所有发送到控制器中put请求的模型 如何创建自定义筛选器,以便通过在发送的模型中使用另一个值,将所有模型捕获为属性值之一?您可以在.NET Core中使用此验证 步骤1:-在启动中注册它 public void ConfigureServices(IServiceCollection services) { services.AddMvc()

我尝试了下列方法之一,但没有成功。 1.验证模型绑定中的属性(用户名)值与模型中其他属性的值(id,以查找用户)。 2.验证所有发送到控制器中put请求的模型

如何创建自定义筛选器,以便通过在发送的模型中使用另一个值,将所有模型捕获为属性值之一?

您可以在.NET Core中使用此验证

步骤1:-在启动中注册它

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc()
            .AddFluentValidation(fvc =>
                fvc.RegisterValidatorsFromAssemblyContaining<Startup>());
}

有关完整的文档,请参阅此文档

,谢谢,但它不是helf。我需要的是检查发送的用户模型,该模型由用户id、一些其他信息和用户名组成,并通过模型中的id检查用户数据库中是否存在用户名。不管是空的还是不空的,都有点复杂empty@liolrn当然您还可以检查数据库中是否存在用户名。例如:-如果您正在使用某些存储库类,请将该依赖项注入RegistrationViewModelValidator.cs,并在其中调用一个方法以确定该用法是否存在。@liolrn,如果有帮助,请查看上面编辑的答案
  public class RegistrationViewModel
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
    }

    public class RegistrationViewModelValidator : AbstractValidator<RegistrationViewModel>
   {
    readonly IUserRepository _userRepo;



        public RegistrationViewModelValidator(IUserRepository userReo)
        {
            RuleFor(reg => reg.FirstName).NotEmpty();
            RuleFor(reg => reg.LastName).NotEmpty();
            RuleFor(reg => reg.Email).NotEmpty();
            RuleFor(reg => reg.FirstName).Must(DoesnotExist);
        }

  bool DoesnotExist(string userName)
    {
        return _userRepo.FindByUserName(userName) != null;
    }
[HttpPost]
public IActionResult FormValidation(RegistrationViewModel model)
{
    if (this.ModelState.IsValid) {
        ViewBag.SuccessMessage = "Great!";
    }
    return View();
}