2013-02-12 61 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上的文章表明:http://www.codeproject.com/Articles/260177/Custom-Validation-Attribute-in-ASP-NET-MVC3

重寫其他的IsValid會給你的選項,包括額外的數據,包括你是否真正尋找一個新的 - 非dupliated用戶,還是您正在查看現有用戶。

using System.ComponentModel.DataAnnotations; 

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