C# ValidationAttribute以检查唯一性
使用此代码,我检查用户名是否有效:C# ValidationAttribute以检查唯一性,c#,asp.net-mvc,C#,Asp.net Mvc,使用此代码,我检查用户名是否有效: public class UniqueUsernameAttribute : ValidationAttribute { public override bool IsValid(object value) { IRepository<User> userRepository = new EFRepository<User>(); User user = userRepository.G
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;
}
}
公共类UniqueUserName属性:ValidationAttribute
{
公共覆盖布尔值有效(对象值)
{
IRepository userRepository=新eRepository();
User User=userRepository.GetAll().FirstOrDefault(x=>x.Name.Equals((字符串)值));
返回user==null;
}
}
这在添加新用户时效果很好。但是在编辑用户时,数据库中已经存在一个现有的用户,因此该代码不再工作(我检查是否有0个条目,而1个条目已经存在)。有没有办法添加一个额外的参数或什么
谢谢您可以试试这篇CodeProject文章的建议: 覆盖另一个IsValid将为您提供包含额外数据的选项,包括您是否真的在寻找新的非重复用户,或者您是否在寻找现有用户
using System.ComponentModel.DataAnnotations;
public class testattribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
return base.IsValid(value, validationContext);
}
}