0

使用此代码,我检查用户名是否有效:

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 将已经存在)。有什么方法可以添加额外的参数或其他东西吗?

谢谢

4

1 回答 1

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);
    }
}
于 2013-02-12T15:55:49.143 回答