正则表达式 - asp.net,c# - 验证失败[重复]

问题描述 投票:-1回答:1

我在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"}, 
c# asp.net asp.net-mvc
1个回答
0
投票

我不是100%但是你的CarNumber属性似乎有问题。 RegularExpression属性在字符串属性上可以正常工作,但在int属性上使用Range属性可能更好:

[Range(0, int.MaxValue, ErrorMessage = "Please enter valid integer Number")]
© www.soinside.com 2019 - 2024. All rights reserved.