我是MVC的新手,正在开发示例应用程序。
其中包含用户注册和登录表单。
在用户注册中,我需要针对正则表达式检查密码以确保它遵循密码策略,因此我对Password
模型中的User
属性进行了以下验证:
[RegularExpression("(?=.{8,})(?=.*?[0-9])(?=.*?[A-Z]).*?[a-z].*", ErrorMessage = "Password requirement not met, please check password policy.")]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
当我在Login页面中使用此属性时,验证正在我在模型中定义时出现,但是当我从Login页面调用它时,我不想检查此验证。
请告知我如何在登录页面和注册页面中使用此属性Password
。
感谢。
答案 0 :(得分:0)
您可以专门告诉ModelBinder忽略错误:
if (ModelState["Password "] != null) ModelState["Password "].Errors.Clear();
您可以在控制器内执行此操作。
另一方面,如果你真的需要它在两个页面中表现不同,我建议使用两个不同的ViewModel。它有点代码重复,但它比共享代码要好得多(并且只是在命名方面类似)