我已经阅读了很多解决方案,但我无法深入了解什么或何时使用 View Model?例如,当我有一个供用户注册的注册表单时,我想拥有一个字段Confirm Password
,但我认为不应该将其添加到User
实体中。所以我有这个 ViewModel:
public class RegisterViewModel
{
public User User { get; set; }
public IEnumerable<SelectListItem> City { get; set; }
public IEnumerable<SelectListItem> Ward { get; set; }
[Required(ErrorMessage = "Bạn chưa nhập lại mật khẩu.")]
[StringLength(100, ErrorMessage = "Mật khẩu phải có ít nhất {2} ký tự.", MinimumLength = 6)]
[DataType(DataType.Password)]
[System.Web.Mvc.Compare("User.Password", ErrorMessage = "Mật khẩu không khớp.")]
public string ConfimPass { get; set; }
}
因此,在阅读此链接后如何在 ASP.NET MVC 3 中正确实现“确认密码”? . 我不知道他们为什么要替换User
实体中已经存在的密码字段。我正在使用不显眼的客户端验证,因此如果我使用此模型视图,它确实可以工作。在我的视图中,我必须使用m=> m.User.Username
但不是m=>m.Username
,等等...因此,我的验证(例如比较密码)或只是远程验证不适用于我的视图中的名称,例如m=>m.User.Username
. 我的思维结构或模型视图有什么问题?