Asp.net mvc ASP.net MVC中多个输入的自定义验证

Asp.net mvc ASP.net MVC中多个输入的自定义验证,asp.net-mvc,validation,data-annotations,Asp.net Mvc,Validation,Data Annotations,在研究了在MVC中实现自定义表单验证规则的各种方法之后,我发现,我最初认为简单的验证方法比我预期的要复杂得多 我有两个文本输入,其中一个(或两个)需要填充。如果两者都是空的,我们需要抛出一个错误 我发现DataAnnotations在尝试对多个字段进行验证时存在局限性,使我在两个输入上都突出显示并抛出一个错误。这是初学者的生日吗 我还玩了FluentValidation,无法得到我想要的结果 目前,我正在使用以下命令在控制器中抛出错误: ModelState.AddModelError("Pro

在研究了在MVC中实现自定义表单验证规则的各种方法之后,我发现,我最初认为简单的验证方法比我预期的要复杂得多

我有两个文本输入,其中一个(或两个)需要填充。如果两者都是空的,我们需要抛出一个错误

我发现
DataAnnotations
在尝试对多个字段进行验证时存在局限性,使我在两个输入上都突出显示并抛出一个错误。这是初学者的生日吗

我还玩了
FluentValidation
,无法得到我想要的结果

目前,我正在使用以下命令在控制器中抛出错误:

ModelState.AddModelError("PropertyName", "You need to enter a Property Number or a Property Name")
ModelState.AddModelError("PropertyNumber", String.Empty)
这使我能够突出显示字段和服务器端验证。现在,我发现在不使用数据注释的情况下绑定自定义客户端验证很困难

有人对如何正确地做到这一点有什么建议吗?如有任何帮助或建议,将不胜感激。我需要在服务器/客户机上对这两个字段进行验证,并加亮显示和一条错误消息


提前感谢。

[Fool-proof][1]验证库涵盖了几乎所有类型的验证场景

[RequiredIf]
[RequiredIfNot]
[RequiredIfTrue]
[RequiredIfFalse]
[RequiredIfEmpty]
[RequiredIfNotEmpty]
[RequiredIfRegExMatch]
[RequiredIfNotRegExMatch]

Applied to a Model:

public class CreateUserViewModel
{
    [Required]
    public string Username { get; set; }

    [Required]
    public string Department { get; set; }

    [RequiredIfEmpty(ErrorMessage="error message"]
    public string Role { get; set; }
}

我使用这个fluentvalidation.codeplex.com.你检查过了吗?