2017-01-17 3 views
1

Я рассмотрел ряд вопросов по созданию пользовательской аннотации данных для проверки модели, и до сих пор я не могу экстраполировать ответ ни с одним из них, поскольку все они очень сильно отличаются в ответах.Пользовательская аннотация для проверки, если пользователь уже существует

Я пытаюсь запустить метод, который возвращает логическое значение для того, что было введено в текстовое поле для этого свойства, но я не уверен, как получить содержимое свойства для запуска метода. В основном это проверка, чтобы узнать, существует ли это имя пользователя. Вот что я пробовал, но, как вы можете видеть, я не знаю, как получить строку, введенную в поле для запуска метода.

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; 
    } 
} 

ответ

0

Я понял. Объект value - это текст, который пользователь ввел в поле.

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;}