標籤

2018年6月4日 星期一

ASP.NET MVC 5 - Adding Validation

᳓前言
本篇文章將"Adding Validation"整理而成。

᳓重點整理
  • 在Model類別中加入驗證邏輯,如此一來,在這個應用程式中對於該Model的所有新增、修改都會依照該邏輯進行驗證。
  • ASP.NET MVC的其中一個核心設計概念為DRY(Don't Repeat Yourself),意思是只需要指定功能或行為一次之後,在應用程式中有使用到的各部分就能夠體現出來。好處是能夠減少需要撰寫的程式碼,而且可以有效降低錯誤發生並方便維護。
᳓實作1. 修改Models/Movie.cs
首先要確認目前資料表的欄位,之後才能做比較。
開啟伺服器管理員->展開資料連接->展開Movies.mdf->右鍵dbo.Movies->選擇開啟資料表定義
尚未修改的dbo.Movies
修改Movie.cs,為各個欄位新增驗證邏輯。
在套件管理器主控台輸入Add-Midgration AddDataAnnotations,便會自動產生以下程式碼。
在套件管理器主控台輸入Update-database,執行完畢後再次查看資料表定義會發現已經變更完成。如此一來,當應用程式在變更資料表資料(呼叫SaveChanges方法)時,會優先判斷資料是否符合驗證邏輯,若是不符(比如必填欄位沒有資料),便會拋出DbEntityValidationException的例外狀況,防止資料庫被存入不好的資料,增加應用程式的強健性。
修改後的dbo.Movies(StringLength:設定字串長度、Display:設定欄位顯示名稱、DataType:設定提示View如何顯示特定的資料、DisplayFormat:指定資料顯示的格式、Required:設定是否為必填項目、Range:設定值域、RegularExpression:設定輸入規則,可防止輸入空格、數字、特殊符號等)