asp.net mvc 3.0詳細筆記__17__使用 DataAnnotations 進行模型驗證
歡迎一起來學習MVC 3.0,我們在一步一個腳印的做一個MVC 3.0的專案,期間會有很多值得探索的地方。將會學到Razor,Lampda,Entity Framework,Linq C#新特性等等知識,一起加油吧!
說起驗證,大家都很熟悉了,各種驗證手段也層出不窮,那麼微軟的asp.net mvc 3.0為我們提供了什麼樣的驗證理念呢?今天我們就來深入剖析以下.
(1)首先分析驗證的目的:防止使用者通過輸入對程式造成安全方面的隱患。說白了,就是防止使用者將某些不符合規則,甚至對程式造成某種破壞的資料提交到資料庫。
微軟認為:既然驗證的東西是針對資料庫的資料,而asp.net mvc 3.0又將mvc中的
程式碼1.1
/// <summary>
/// 唱片價格
/// </summary>
[Required(ErrorMessage = "唱片必須有價格!")]
[Range(0.01, 100.00, ErrorMessage = "範圍必須從 0.01 到 100.00")]
public Nullable<decimal> Price { get; set; }
其中Required和Range就是用於驗證而提供的關鍵字,同屬於DataAnnotations
(2)常用的DataAnnotations如下所示:
Required 必須 – 表示這個屬性是必須提供內容的欄位
DisplayName 顯示名 – 定義表單欄位的提示名稱
StringLength 字串最大長度 – 定義字串型別的屬性的最大長度
Range 範圍 – 為數字型別的屬性提供最大值和最小值
Bind 繫結 – 列出在將請求引數繫結到模型的時候,包含和不包含的欄位
ScaffoldColumn 支架列 - 在編輯表單的時候,需要隱藏起來的的字元
(3)雖然在模型層對一些欄位進行了驗證資訊的宣告,但最終還是需要在檢視一側呼叫這份宣告才會真正的去驗證,有時候驗證沒效果大概就是聲明瞭而沒有去
如對以上價格的驗證
@Html.EditorFor(model => model.Price)@Html.ValidationMessageFor(model => model.Price)
(4)執行程式,在編輯的頁面的價格輸入框中輸入"5555555",點選"Save"如圖4.1所示,驗證成功。
圖4.1