我正在使用ASP.net MVC 4和Entity Framework 5构建网站。
我使用SimpleMembership作为会员提供商。
我最近注意到UserProfile表中有许多重复的用户名。例如
UserID用户名
100 myuser
101 myuser
134 myuser
187 myuser
我的网站仍然按预期工作,因为UserPfofile中的重复条目不会映射webpages_Membership表中的任何记录(因此实际上只有1个用户称为“myuser”)
但是,我无法弄清楚如何创建这些重复项。
任何帮助将不胜感激
答案 0 :(得分:1)
在您的模型中使用CustomValidationAttribute
AS假设您的模型如下
public class RegisterModel
{
[CustomValidation(typeof(RegisterModel), "CheckUserNameExists")]
[Required(ErrorMessage="Required")]
public string UserName { get; set; }
}
现在创建静态方法,如下所示
public static ValidationResult CheckUserNameExists(string userName)
{
User user = SessionUserNameEntity;
if (user != null && user.UserName == userName)
{
return ValidationResult.Success;
}
else
{
if (userName != null)
{
User chkUser = new User();
chkUser = FetchSingleUserFromExistDB(userName);
if (chkUser != null)
{
return new ValidationResult(Global.UserNameAlreadyRegistered);
}
else
{
return ValidationResult.Success;
}
}
else
{
return null;
}
}
}
因此,每当新用户尝试注册时,您可以检查UserName是否已存在?