在我的MVC应用程序中,我要求用户在列中插入唯一值。
即:Username
在Users
表中应该是唯一的。
我在模型中使用了[Indes(IsUnique = true)]
数据注释。
但是当我在字段中插入重复值时会抛出异常,但我想在我的视图上显示错误消息,说请尝试使用其他用户名
请帮帮我,我该怎么办?
答案 0 :(得分:1)
您可以使用其中之一:
编写CustomValidator(推荐)
[CustomRemoteValidator(ErrorMessage = @"Username already in use")]
public string Username{ get; set; }`
并覆盖IsValid方法
public override bool IsValid(object value)
{
return !(this.DbContext.Set<User>().Any(a =>
a.Username.Equals((string)value));
}
在商家图层中查看。
SaveChanges()
方法在数据库中保存实体之前检查它。