asp.net-mvc - 当在客户端时进行流畅的验证

标签 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))
    }
}

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

最佳答案

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

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

Note that FluentValidation will also work with ASP.NET MVC's client-side validation, but not all rules are supported. For example, any rules defined using a condition (with When/Unless), custom validators, or calls to Must will not run on the client side. The following validators are supported on the client:

*NotNull/NotEmpty *Matches (regex) *InclusiveBetween (range) *CreditCard *Email *EqualTo (cross-property equality comparison) *Length

关于asp.net-mvc - 当在客户端时进行流畅的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15494440/

相关文章:

javascript - 必需 ||必需的 HTML5 表单

asp.net-mvc-3 - 使用 FluentValidation/MVC 3 验证客户端上的复选框

asp.net-mvc-3 - 使用FluentValidator验证DateTime

c# - 本地主机永远等待 ASP.NET 5 应用程序模板项目

c# - 返回 HttpResponseMessage 的 Web API 最佳方法

javascript - 如何禁用浏览器前进按钮,我有禁用后退的脚本...?

php - 比较规则 yii2 无法正常工作

javascript - Jquery 验证不适用于特殊字符

model-view-controller - fluidvalidation InclusiveBetween 动态设置范围

c# - 来自字节数组的 ASP.NET MVC 图像