C#命名空間System.ComponentModel.DataAnnotations下自定義觸發驗證


我們知道,在使用ASP.NET MVC時可以對實體參數進行驗證,我們只需要在屬性上標記[Required]就表示該屬性是必填項,同時MVC框架會自動進行驗證,使用起來不亦樂乎。但是如果我們在控制台應用程序或是非控制器中想要觸發這個驗證怎么樣才能實現呢?
環境:.net core 3.1 控制台應用程序

1.創建實體類Student

public class Student
{
    [Required]
    public string Name { get; set; }

    [Range(1, 100)]
    public int Age { get; set; }

    [Required]
    [RegularExpression(@"\d{11}", ErrorMessage = "電話號碼格式不對")]
    public string Phone { get; set; }
}

2.定義驗證方法

var student = new Student() { Name = "段江濤", Age = 1, Phone = "1365" };
var context = new ValidationContext(student, null, null);

var results = new List<ValidationResult>();
if (Validator.TryValidateObject(student, context, results, true))
{
    Console.WriteLine("驗證成功");
}
else
{
    Console.WriteLine("驗證失敗");
    foreach (var validationResult in results)
    {
        Console.WriteLine(validationResult.ErrorMessage);
    }
}
Console.ReadLine();

效果:

 

 

更高級的用法可參考:https://blog.csdn.net/litao2/article/details/78568364


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM