首页 > 解决方案 > 使用 When 的 MVC 和 Fluent 验证

问题描述

这就是我所拥有的..

public class PersonalDetailValidator : AbstractValidator<PersonalDetail>
{
    public PersonalDetailValidator()
    {
        RuleFor(x => x.LastName).NotNull().WithMessage("Person's Last Name is required");
        RuleFor(x => x.FirstName).NotEmpty().When(x => string.IsNullOrWhiteSpace(x.LastName) == false).WithMessage("Person's First Name is required");
    }
}

[Validator(typeof(PersonalDetailValidator))]
public class PersonalDetail
{

    [Display(Name = "First Name")]
    public string FirstName { get; set; }

    [Display(Name = "Last Name")]
    public string LastName { get; set; }
}

问题是针对姓氏的第一条规则在客户端起作用,但是在将某些内容输入到姓氏之后,针对名字的规则没有触发。

任何人都可以帮忙吗?

标签: c#asp.net-mvcfluentvalidation

解决方案


FluentValidation 将与 ASP.NET MVC 的客户端验证一起使用,但并非所有规则都受支持。例如,使用条件 (with When/Unless)、自定义验证器或调用定义的任何规则Must都不会在客户端运行。

在此处查看更多信息


推荐阅读