在很多情况下,我们为了代码的复用可能会存在ViewModel共用的情形。比方说,web应用中常常会遇到的一个需求就是用户找回密码的功能。用户首先要验证通过验证邮箱(通常是用户名)来获取验证码,然后再进行密码重置。那么此时假设需要4个字段:Email、Password、ConfirmPassword、VerifiCode。那么就需要2个单独的页面中队这一个model进行分步验证了。google了一下,发现了一些有价值的解决方案。为了说明问题,写了一个小的Demo如下:

ViewModel:

public class ForgotPasswordMdl
{
    [Display(Name = "邮箱")]
    [Required(ErrorMessage = "请输入注册时的邮箱地址")]
    public string Email { get; set; }
    [Display(Name = "密码")]
    [Required(ErrorMessage = "密码不能为空")]
    public string Password { get; set; }
    [Display(Name = "确认密码")]
    [Required(ErrorMessage = "确认密码不能为空")]
    public string ConfirmPassword { get; set; }
}
View Code

相关文章: