[鐵人賽Day15] | mvc required
![[鐵人賽Day15]](https://i.imgur.com/axBPWDg.jpg)
前言講完了Controller的基礎應用後,本文將介紹ASP.NetCore中的ModelValidation。同步發表於個人點部落-[鐵人賽Day15]ASP.NetCoreMVC進化之路-ModelValidation(1)/前端vs.後端驗證[1]ModelValidation許多人將ModelValidation翻成模型驗證,但筆者比較習慣稱呼它為資料驗證,資料驗證主要是檢查HTML表單中的欄位內容是否符合規則,常見的如email格式、信用卡卡號、電話號碼等。而資料驗證又可分為前端驗證及後端驗證,雖然都是作資料檢查的工作,但在本質上還是有很大的差別。前端驗證是在Client端使用Javascript預先檢查表單的內容,...
![[鐵人賽Day15]](https://i.imgur.com/H8YKUrg.jpg)
講完了Controller的基礎應用後,
本文將介紹ASP.Net Core中的Model Validation。
同步發表於個人點部落 - [鐵人賽Day15] ASP.Net Core MVC 進化之路 - Model Validation(1) / 前端 vs. 後端驗證[1]
Model Validation許多人將Model Validation翻成模型驗證,但筆者比較習慣稱呼它為資料驗證,資料驗證主要是檢查HTML表單中的欄位內容是否符合規則,常見的如email格式、信用卡卡號、電話號碼等。
而資料驗證又可分為前端驗證及後端驗證,雖然都是作資料檢查的工作,但在本質上還是有很大的差別。前端驗證是在Client端使用Javascript預先檢查表單的內容,後端驗證則在Server端作為資料保護最後一道防線,
簡單示意圖如下。
既然後端驗證是最後一道防線,幹嘛還要脫褲子放屁作兩次?
使用前端驗證除了能有效減少Request的數量(因為後端驗證就會發Request),也會讓使用者體驗比較舒服一點(畫面不會閃一下),但後端驗證也能透過Ajax達到畫面不閃的效果(遠端驗證Remote Validation)。
理論上資料驗證是需要分開做兩次的,但如果使用ASP.Net Core MVC開發網站,你只需要做一次。
我們要先來講講後端驗證的使用方式。在ASP.Net Core MVC中我們可以在Model中設定後端驗證,只要在屬性掛上[ValidationAttribute]就可以達到後端驗證的效果。這裡簡單摘列幾種內建常用的[ValidationAttribute]:
[Required]:驗證欄位內容是否為空值或空字串。 [EmailAddress]:驗證欄位內容是否符合信箱格式。 [Compare]:比對兩個欄位內容是否相同。 [Range]:驗證欄位數值是否介於指定範圍中。 [RegularExpression]:驗證資料符合指定的規則運算式。 [MaxLength]、[MinLe...