用于检查用户名是否已存在的自定义验证注释

时间:2017-01-17 16:39:03

标签: c# validation data-annotations

我已经查看了一些关于为模型验证创建自定义数据注释clas的问题,到目前为止,我无法从其中任何一个中推断出答案,因为它们在响应中的变化非常大。

我正在尝试运行一个方法,该方法返回一个布尔值,该布尔值输入到该属性的文本框中,但我不知道如何获取属性内容来运行该方法。基本上这是检查此用户名是否已存在的检查。这是我尝试过的,但正如你所看到的,我不知道如何获得输入到该字段中的字符串来运行该方法。

public class Username : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {

        ADSI adsi = new ADSI();
        if (adsi.UserExists(//here's where the text entered should go))
        {
            return new ValidationResult(this.FormatErrorMessage(validationContext.DisplayName));
        }
        return null;
    }
}

1 个答案:

答案 0 :(得分:0)

我明白了。值对象是用户在字段中输入的文本。

public class Username : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        ADSI adsi = new ADSI();
        if (adsi.UserExists(value.ToString()))
        {
            return new ValidationResult(this.FormatErrorMessage(validationContext.DisplayName));
        }
        return null;
    }
}

显然,我用来检查用户名是否存在的方法是我写的,所以你需要参考有关如何操作的文档。

用法:

[Username(ErrorMessage = "Username already exists.")]
public string Username {get; set;}