带有表达式条件验证的数据注释

时间:2014-11-05 06:54:23

标签: asp.net-mvc

我使用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,这不是我用它初始化它的消息,它应该告诉我“如果你打算出国旅游,为什么要去参观”

1 个答案:

答案 0 :(得分:3)

我刚刚在自己的代码中遇到了同样的问题。您将ProjectID声明为int,它会自动获取与其无关的[Required()]注释,因为int的类型不能为空。

如果您将public int ProjectID更改为public Nullable<int> ProjectID或'public int? ProjectID`,应解决问题。