我使用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; }
如果角色是1,那么项目Id是必填项,两者都是下拉列表,问题是RequiredIf不工作,我收到验证消息说ProjectId是必需的,这不是我初始化它的消息,它应该告诉我“如果您计划出国旅行,为什么访问相同的”
发布于 2015-01-07 08:25:23
我在自己的代码中也遇到了同样的问题。您将ProjectID
声明为一个int
,它会自动获得一个不可见的[Required()]
注释,因为int
的类型不能为空。
如果您将public int ProjectID
更改为public Nullable<int> ProjectID
或'public int? ProjectID`,应该可以解决问题。
https://stackoverflow.com/questions/26751305
复制相似问题