我使用Expressive实现客户端验证, 以下是代码,我使用条件验证,而且一个字段依赖于其他
[Required(ErrorMessage ="Role Required")]
public string Role { get; set; }
[RequiredIf("Role == '1'", ErrorMessage = "If you plan to travel abroad, why visit the same country twice?")]
public int ProjectID { get; set; }
如果role只是1,那么Project Id是必须的,两者都是下拉,问题是RequiredIf不工作,我得到验证消息说需要ProjectId,这不是我用它初始化它的消息,它应该告诉我“如果你打算出国旅游,为什么要去参观”
答案 0 :(得分:3)
我刚刚在自己的代码中遇到了同样的问题。您将ProjectID
声明为int
,它会自动获取与其无关的[Required()]
注释,因为int
的类型不能为空。
如果您将public int ProjectID
更改为public Nullable<int> ProjectID
或'public int? ProjectID`,应解决问题。