使用此代码,我会检查用户名是否有效:
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个已经存在)。有没有办法添加额外的参数或什么?
由于
答案 0 :(得分:1)
您可以尝试CodeProject文章建议的内容:http://www.codeproject.com/Articles/260177/Custom-Validation-Attribute-in-ASP-NET-MVC3
覆盖其他IsValid会为您提供包含其他数据的选项,包括您是否真的在寻找新的 - 非重复用户,或者您是否在查看现有用户。
using System.ComponentModel.DataAnnotations;
public class testattribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
return base.IsValid(value, validationContext);
}
}