我正在尝试创建一个简单的创建用户页面,其中包含用户详细信息和确认密码字段。
我有一个用户视图模型和一个用户类:
public class UserViewModel
{
public User AccountUser { get; set; }
[Required]
[Compare("AccountUser.Password")]
public string ConfirmPassword { get; set; }
}
[DisplayName("User Account")]
public class User
{
[Required]
[DisplayName("Username")]
public string Username { get; set; }
[Required]
[DisplayName("Password")]
public string Password { get; set; }
}
当在两个密码字段中输入不匹配的数据时,jQuery 将成功告诉我密码字段不匹配并且提交按钮不会返回到我的控制器。
但是,如果我匹配这两个字段,jQuery 将通过其验证,提交查询将返回到控制器。那时我ModelState.IsValid
的被检查并返回 false 引用“找不到属性 AccountUser.Password”关于密码属性的错误。
我理解关注点分离模式,但是我试图理解为什么这段代码不起作用。
有人可以解释为什么在没有显示 jquery 验证消息后模型状态返回 false 吗?