向 Movie 模型添加了驗證邏輯。 每當用戶建立或編輯電影時,都會強制執行驗證規則。數據庫
1.打開Movie.cs文件。DataAnnotations命名空間提供了一組內置的驗證屬性,這些屬性以聲明方式應用於類或屬性。
DataAnnotations還包含格式化屬性,如格式化DataType幫助,不提供任何驗證。ui
Movie類利用內置的Required,StringLength,RegularExpression,和Range驗證特性。spa
public class Movie
{
public int Id { get; set; }ci
[StringLength(60, MinimumLength = 3)]
[Required]
public string Title { get; set; }字符串
[Display(Name = "Release Date")]
[DataType(DataType.Date)]
public DateTime ReleaseDate { get; set; }get
[Range(1, 100)]
[DataType(DataType.Currency)]
[Column(TypeName = "decimal(18, 2)")]
public decimal Price { get; set; }string
[RegularExpression(@"^[A-Z]+[a-zA-Z""'\s-]*$")]
[Required]
[StringLength(30)]
public string Genre { get; set; }it
[RegularExpression(@"^[A-Z]+[a-zA-Z0-9""'\s-]*$")]
[StringLength(5)]
[Required]
public string Rating { get; set; }
}io
驗證屬性指定要對其應用的模型屬性強制執行的行爲:class
在Required和MinimumLength屬性指示某個屬性必須有一個值; 但沒有什麼能阻止用戶輸入空格來知足此驗證。
該RegularExpression屬性用於限制能夠輸入的字符。在前面的代碼中,「類型」:
必須只使用字母。
第一個字母必須是大寫的。不容許使用空格,數字和特殊字符。
該RegularExpression「等級」:
要求第一個字符是大寫字母。
容許後續空格中的特殊字符和數字。「PG-13」對於評級有效,但對於「類型」則失敗。
該Range屬性將值約束在指定範圍內。
該StringLength屬性容許您設置字符串屬性的最大長度,以及可選的最小長度。
值類型(如decimal,int,float,DateTime)的內在須要和不須要的[Required]屬性。
ASP.NET Core自動執行驗證規則有助於使您的應用程序更增強大。它還確保您不會忘記驗證某些內容並沒有意中將錯誤數據放入數據庫中。