这个问题在这里已有答案:
我在asp.net(visual studio 2017)中构建了一个模型,我想在我的代码中加入一些验证。
当我试图更新数据库时,我收到了这条消息:
一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性
当我删除正则表达式时没有问题。
这是我的代码:
public class Customer
{
public int customerID { set; get; }
[Display(Name = "First Name")]
[RegularExpression(@"^[a-zA-Z]+$", ErrorMessage = "Must be alphabates only")]
[StringLength(20, MinimumLength = 2)]
public string firstName { set; get; }
[Display(Name = "Last Name")]
[RegularExpression(@"^[a-zA-Z]+$", ErrorMessage = "Must be alphabates only")]
[StringLength(20, MinimumLength = 2)]
public string lastName { set; get; }
[Display(Name = "Phone")]
[RegularExpression(@"^[0-9]+$", ErrorMessage = "Must be numbers only")]
[StringLength(10, MinimumLength = 9)]
public string phone { set; get; }
[Display(Name = "Car Number")]
[RegularExpression(@"^[0-9]+$", ErrorMessage = "Must be numbers only")]
public int carNumber { set; get; }
[Display(Name = "e-mail Customer")]
[RegularExpression(@"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Must be valid email")]
[StringLength(30, MinimumLength = 4)]
public string mailCustomer { set; get; }
[Display(Name = "Home Address")]
[RegularExpression(@"^[a-zA-Z0-9''-'\s]*$", ErrorMessage = "Must be alphabates and numbers only")]
[StringLength(40, MinimumLength = 2)]
public string homeAddress { set; get; }
[Display(Name = "Work Address")]
[RegularExpression(@"^[a-zA-Z0-9''-'\s]*$", ErrorMessage = "Must be alphabates and numbers only")]
[StringLength(40, MinimumLength = 2)]
public string workAddress { set; get; }
}
这是正确的语法?因为我已经多次检查它们并且它应该工作。
这是我想要输入数据库的项目之一:
new Customer {customerID=311111111, firstName= "Lior", lastName="David", phone="0549121111", carNumber=57382561, mailCustomer="[email protected]", homeAddress="bograshov 22", workAddress="bograshov 18"},
我不是100%但是你的CarNumber属性似乎有问题。 RegularExpression属性在字符串属性上可以正常工作,但在int属性上使用Range属性可能更好:
[Range(0, int.MaxValue, ErrorMessage = "Please enter valid integer Number")]