簡體   English   中英

如何使用數據注釋和正則表達式 - c# - ASP.NET 核心

[英]How to use DataAnnotations & Regex - c# - ASP.NET Core

我正在使用數據注釋來匹配用戶為錯誤處理目的而輸入的字段。

每當他們輸入不正確的格式時,它就會打印出實際的正則表達式,我想知道是否有辦法刪除“匹配以下正則表達式”並只打印錯誤消息。

我的表單示例和顯示的錯誤消息:表單

我的代碼:

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; }
[RegularExpression(@"([0-9][0-9])\/([0-9][0-9])",ErrorMessage = "your message")]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM