在客户端进行流畅的验证

pie*_*_dv 10 asp.net-mvc client-side-validation fluentvalidation

在ASP.NET MVC4应用程序中,我们使用FluentValidation来验证我们的模型.在某些情况下,我们只想在另一个属性具有值时验证属性.我们使用When关键字来完成此任务.一个简单的验证类如下所示:

public class PersonValidator : AbstractValidator<Person>
{
    public PersonValidator()
    {
        RuleFor(item => item.FirstName).NotEmpty();
        RuleFor(item => item.LastName).NotEmpty().When(item => !string.IsNullOrEmpty(item.FirstName))
    }
}
Run Code Online (Sandbox Code Playgroud)

我们希望对此进行客户端验证.我试图创建一个自定义FluentValidationPropertyValidator.但我找不到一种方法来获取验证规则的When部分.有人能指出我正确的方向吗?

sta*_*247 0

FluentValidation 中的某些验证不支持客户端验证:

来自文档(http://fluidation.codeplex.com/wikipage?title=mvc&referringTitle=Documentation):

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

*NotNull/NotEmpty *匹配(正则表达式) *InclusiveBetween(范围) *信用卡 *电子邮件 *EqualTo(跨属性相等比较) *长度