我有以下型号
public AccountInfo {
// loads of other property here as well.
public string Password { get; set; }
public string NewPassword { get; set; }
[Compare("NewPassword", ErrorMessage = "New Passwords dont match.")]
public string ConfirmNewPassword { get; set; }
}
我正在使用数据注释来显示客户端验证消息。
现在我正在处理更改用户个人资料详情页面。
我需要做的是,除了电子邮件,全名,地址等其他详细信息外,我还要显示3个字段
现在的情况是这些是可选字段,用户可能无法填写它。但是当他这样做时,我想确保填写所有3个字段。,如果不是,我想使用数据注释显示一些验证错误。
有什么想法吗?
答案 0 :(得分:1)
没有任何内置数据注释。您可以创建自定义属性来进行验证,但这并不容易。因此,我建议您使用Jquery Validation / Javascript来处理这个问题。
基本上你想覆盖提交事件并在那里做你自己的验证逻辑。您的代码与此类似:
function SubmitToServer() {
if ($('#Password').length == 0 || ($('#Password').length > 0 && $('#NewPassword ').length > 1 && $(formId).valid()) {
$(formId).submit();
}
}
答案 1 :(得分:0)
您可以使用[Required]
告诉RAZOR这些是必须的或强制性的......
[Required]
public string Password { get; set; }
[Required]
public string NewPassword { get; set; }
[Required]
[Compare("NewPassword", ErrorMessage = "New Passwords dont match.")]
public string ConfirmNewPassword { get; set; }
如果您想提供价值范围,请使用此值 - [Range(1, 100)]
如果你想使用密码长度意味着使用这个 - [StringLength(5)]