如何使用DataAnnotations&;Regex-c#-ASP.NET内核

如何使用DataAnnotations&;Regex-c#-ASP.NET内核,c#,regex,asp.net-mvc,asp.net-core,data-annotations,C#,Regex,Asp.net Mvc,Asp.net Core,Data Annotations,我使用DataAnnotation来匹配用户将输入的字段,以便进行错误处理 每当他们输入不正确的格式时,它就会打印实际的正则表达式,我想知道是否有办法删除“匹配下面的正则表达式”并只打印错误消息 我的表单示例和显示的错误消息: 我的代码: using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.ComponentModel.Data

我使用DataAnnotation来匹配用户将输入的字段,以便进行错误处理

每当他们输入不正确的格式时,它就会打印实际的正则表达式,我想知道是否有办法删除“匹配下面的正则表达式”并只打印错误消息

我的表单示例和显示的错误消息:

我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;

namespace FoodCart.Models
{
    public class Order
    {
        public int ID { get; set; }

        [Display(Name = "First Name")]
        [RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$")]
        [Required(ErrorMessage = "This field is required")]
        public string FirstName { get; set; }

        [Display(Name = "Last Name")]
        [RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$")]
        [Required(ErrorMessage = "This field is required")]
        public string LastName { get; set; }

        [Required(ErrorMessage = "This field is required")]
        public string Address { get; set; }

        [Required(ErrorMessage = "This field is required")]
        public string City { get; set; }

        [Required(ErrorMessage = "This field is required")]
        public string State { get; set; }

        [Required(ErrorMessage = "This field is required")]
        public string Zip { get; set; }

        [Display(Name = "Name on Card")]
        [Required(ErrorMessage = "This field is required")]
        public string NameonCard { get; set; }

        [Display(Name = "Credit Card Number")]
        [Required(ErrorMessage = "This field is required, input valid 16 digit number")]
        [RegularExpression(@" ([0 - 9][0 - 9][0 - 9][0 - 9]) ([0 - 9][0 - 9][0 - 9][0 - 9]) ([0 - 9][0 - 9][0 - 9][0 - 9]) ([0 - 9][0 - 9][0 - 9][0 - 9])")]
        public string CreditCardNum { get; set; }

        [Display(Name = "Expiration Date")]
        [Required(ErrorMessage = "This field is required, input valid expiration date: MM/YY")]
        [RegularExpression(@"([0-9][0-9])\/([0-9][0-9])")]
        public string ExpDate{ get; set; }

        [Display(Name = "CVV")]
        [RegularExpression(@"([0-9][0-9][0-9])")]
        [Required(ErrorMessage = "This field is required")]
        public string cvv { get; set; }

        [Display(Name = "Total")]
        public decimal YourTotal { get; set; }
        public int UserLinkID { get; set; }


    }
}

验证属性都附带了一条默认错误消息,该消息内置于实现中。对于
RegularExpressionAttribute
,此错误消息如下所示:

字段{0}必须与正则表达式{1}匹配

占位符
{0}
将是正在验证的属性的显示名称,
{1}
将是正则表达式本身

有几种方法可以自定义此错误消息,请使用以下方法之一。最简单的方法是直接使用
ErrorMessage
属性指定错误消息。注意,如果愿意,您仍然可以引用占位符
{0}
(用于字段名)和
{1}
(用于正则表达式):

[Display(Name = "First Name")]
[RegularExpression(@"^[a-zA-Z'-\s]{1,40}$", ErrorMessage = "The field {0} is not a valid name")]
public string FirstName { get; set; }

您选择的图案不合适。你想用这个图案做什么?
[Display(Name = "First Name")]
[RegularExpression(@"^[a-zA-Z'-\s]{1,40}$", ErrorMessage = "The field {0} is not a valid name")]
public string FirstName { get; set; }