ASP.NET MVC5中Model層開發,使用的數據註解有三個作用: 數據映射(把Model層的類用EntityFramework映射成對應的表) 數據驗證(在伺服器端和客戶端驗證數據的有效性) 數據顯示(在View層顯示相應的數據) 數據註解相關的命名空間如下: System.Component ...
ASP.NET MVC5中Model層開發,使用的數據註解有三個作用:
- 數據映射(把Model層的類用EntityFramework映射成對應的表)
- 數據驗證(在伺服器端和客戶端驗證數據的有效性)
- 數據顯示(在View層顯示相應的數據)
數據註解相關的命名空間如下:
DataAnnotations名稱空間中包含主要的數據註解,Schema名稱空間中包含一些數據映射的數據註解,Mvc名稱空間中包含字元、數組、數值長度和屬性比較的數據註解,Security名稱空間中包含MemberShipPassword註解特性。
數據映射和驗證相關的數據註解:
[Required] | 必填欄位 |
[MaxLength] | 指定屬性中允許的數組或字元串數據的最大長度 |
[MinLength] | 指定屬性中允許的數組或字元串數據的最小長度 |
[StringLength] | 指定最小和最大字元長度 |
[Range] | 指定數值範圍 |
數據驗證相關的數據註解:
[Remote] | 使用 jQuery 驗證插件遠程驗證程式的特性 |
[FileExtension] | 驗證文件擴展名 |
[Compare] | 比較兩個屬性的值 |
[RegularExpression] | 使用正則表達式驗證 |
[CustomValidation] | 自定義驗證方法 |
[DataType] | 指定要與數據欄位關聯的附加類型的名稱 |
[EmailAddress] | 電子郵件地址(相當於[DataType(DataType.Email)]) |
[Phone] | 電話(同上) |
[CreditCard] | 信用卡號碼(同上) |
[Url] | 驗證URL(同上) |
[MemberShipPassword] | 驗證密碼欄位是否滿足成員資格提供程式的當前密碼要求 |
數據映射相關的數據註解:
[Key] | 主鍵欄位 |
[Column] | 資料庫列屬性映射 |
[NotMapped] | 不要創建對應的欄位 |
[Table] | 指定類將映射到的資料庫表 |
[ForeignKey] | 表示關係中用作外鍵的屬性 |
[DatabaseGenerated] | 指定資料庫生成屬性值的方式(EF不追蹤屬性的變化) |
數據顯示相關的數據註解:
[DisplayName] | 指定本地化的字元串(習慣用語類) |
[Display] | 指定本地化的字元串(習慣用語屬性) |
[DisplayFormat] | 設置數據欄位的格式 |
[ReadOnly] | 指定該特性所綁定到的屬性是只讀屬性還是讀/寫屬性 |
[EditAble] | 指示數據欄位是否可編輯 |
[HiddenInput] | 指示是否應將屬性值或欄位值呈現為隱藏的 input 元素 |
[ScaffoldColumn] | 指定類或數據列是否使用基架 |
[UIHint] | 指定動態數據用來顯示數據欄位的模板 |
其他
[DisplayColumn] | 將所引用的表中顯示的列指定為外鍵列 |
[Description] |
可視化設計器在引用組件成員時可以顯示指定的說明 |
1、數據驗證相關的數據註解繼承ValidationAttribute類,都有一個ErrorMessage屬性用來顯示錯誤提示。
如:[Required(ErrorMessage="此項不能為空")]。
2、數據映射中Int類型和DateTime類型在資料庫中預設不允許為NULL,如果需要設置為NULL,使用可空類型即可(使用Int?或者DateTime?)。