2013-02-12 2 views
0

고유성 확인 : 새로운 사용자를 추가 할 때이 잘 작동ValidationAttribute 내가 이름이 유효 여부 확인이 코드

public class UniqueUsernameAttribute : ValidationAttribute 
{ 
    public override bool IsValid(object value) 
    { 
     IRepository<User> userRepository = new EFRepository<User>(); 

     User user = userRepository.GetAll().FirstOrDefault(x => x.Name.Equals((string) value)); 

     return user == null; 
    } 
} 

. 그러나 사용자를 편집 할 때 기존 데이터베이스가 이미 데이터베이스에 존재하므로이 코드는 더 이상 작동하지 않습니다 (0 항목이 있는지 확인하고 1은 이미 존재 함). 여분의 매개 변수를 추가하는 방법이 있습니까?

감사

답변

1

당신 수도 노력이 CodeProject의 기사는 시사 무엇을 : 당신에게 옵션을 줄 것이다 다른 IsValid 재정 http://www.codeproject.com/Articles/260177/Custom-Validation-Attribute-in-ASP-NET-MVC3

당신이 정말 새로운 찾고 있습니다 여부를 포함한 추가 데이터를 포함하는 - 비 dupliated 사용자 또는 기존 사용자를보고 있는지 여부.

using System.ComponentModel.DataAnnotations; 

public class testattribute : ValidationAttribute  
{ 
    protected override ValidationResult IsValid(object value, ValidationContext validationContext) 
    { 
     return base.IsValid(value, validationContext); 
    } 
}