密码确认字段 - 扩展名或组合

时间:2011-01-17 20:16:25

标签: asp.net-mvc-2 validation viewmodel

美好的一天!

我说,简单的LINQ2SQL实体名为User。我需要一个需要密码确认字段的个人资料页面。我不想将此字段添加到我的数据库或实体。我想添加ViewModel类。我的第一次尝试是这样的:

[MyClassLevelAttributeToCheckPasswordAndPasswordConfirmation]
public class ProfileUser
{
    public User UserEntity {get; set;}

    [DisplayName("Password confirmation")]
    public string PasswordConfirmation {get; set;}
}

我的User类有自己的验证和元数据。

有没有更好的解决方案?

提前致谢!

1 个答案:

答案 0 :(得分:0)

不要在视图中使用任何模型类。使用普通视图模型:

[MyClassLevelAttributeToCheckPasswordAndPasswordConfirmation]
public class ChangePasswordViewModel
{
    public string Password { get; set; }

    [DisplayName("Password confirmation")]
    public string PasswordConfirmation {get; set;}
}

正如您所看到的,我们只将属性与更改密码视图(或您正在实施的任何视图)相关联。这样,您就可以在给定视图的上下文中获得精细的验证控件。 AutoMapper可以帮助您从视图模型中恢复模型。