ASP.NET MVC 4跨字段或属性验证

ssn*_*771 2 c# asp.net asp.net-mvc

我正在试图弄清楚如何验证用户在注册时输入了匹配的密码.我可以使用MVC 4数据注释内置的任何内容,或者是创建自定义验证属性的唯一途径吗?

如果我必须创建自定义验证属性,如何访问密码属性(假设我将注释放在确认密码属性上)?此外,是否有任何常用的库用于此类验证?

这就是我在自定义验证属性的开头所拥有的,只是不知道如何访问密码属性:

public class CrossFieldValidationAttribute : ValidationAttribute
{
    public override bool IsValid(object value) //how do I get the other value in here?
    {
        //validation logic here
        return base.IsValid(value);
    }
}
Run Code Online (Sandbox Code Playgroud)

我感谢任何帮助!

Sim*_*n C 10

mvc中已经内置了比较验证属性.请参阅此处的文档:

http://msdn.microsoft.com/en-us/library/system.web.mvc.compareattribute(v=vs.98).aspx

使用的一个例子是:

    public string Password { get; set; }

    [Compare("Password", ErrorMessage = "Uh oh")]
    public string PasswordAgain { get; set; }
Run Code Online (Sandbox Code Playgroud)