MVC5 数据注解和验证
①利用數(shù)據(jù)注解進(jìn)行驗(yàn)證
②創(chuàng)建自定義的驗(yàn)證邏輯
③模型元數(shù)據(jù)注解的用法
?
①先創(chuàng)建數(shù)據(jù)源
?1,創(chuàng)建我們的Model? Order
2,創(chuàng)建控制器帶EF 選擇模型為Order
?
?
當(dāng)你運(yùn)行的時(shí)候會(huì)報(bào)錯(cuò),需要代碼遷移? ??code First 更新數(shù)據(jù)庫(kù)?這篇文章可解決這個(gè)問(wèn)題。
?
3,添加,不做處理的時(shí)候,顯示的是這個(gè)
?
?
?②驗(yàn)證注解的使用
?
?
?
?
?2.1自定義錯(cuò)誤提示信息及其本地化
?
?
2.2 注解的后臺(tái)原理
? ASP.NET MVC 的驗(yàn)證特性是由模型綁定器、模型元數(shù)據(jù)、模型驗(yàn)證器和模型狀態(tài)組成的協(xié)調(diào)系統(tǒng)的一部分。
? ? 1.驗(yàn)證和模型綁定
? 默認(rèn)情況下,ASP.NET MVC框架在模型綁定時(shí)執(zhí)行驗(yàn)證邏輯,在操作方法帶有參數(shù)時(shí),就會(huì)隱式地執(zhí)行模型綁定。模型綁定器一旦使用新值完成對(duì)模型屬性的更新,就會(huì)利用當(dāng)前的模型元數(shù)據(jù)獲得模型的所有驗(yàn)證器。模型綁定器捕獲所有失敗的驗(yàn)證規(guī)則并把它們放入模型狀態(tài)中。
? ?2.驗(yàn)證和模型狀態(tài)
? ? ? ?模型綁定主要的副產(chǎn)品是模型狀態(tài)(ModelState)。模型狀態(tài)不僅包含了用戶想放入模型屬性中的所有值,也包括與每個(gè)屬性相關(guān)聯(lián)的所有錯(cuò)誤。如果在模型狀態(tài)中存在錯(cuò)誤,ModelState.IsValid就返會(huì)flase.
? 列如: 把LastName做了非空驗(yàn)證,在模型綁定之后,下面都會(huì)返回true
我們一般會(huì)使用HTML的輔助方法:
?
?2.3.控制器操作和驗(yàn)證錯(cuò)誤
? 控制器操作決定了在模型驗(yàn)證失敗和驗(yàn)證成功時(shí)的執(zhí)行流程。在驗(yàn)證成功時(shí),操作通常會(huì)執(zhí)行必要的步驟來(lái)保存或跟新信息。
?
?
?2.4.自定義驗(yàn)證邏輯
? ?①將驗(yàn)證邏輯封裝在自定義的數(shù)據(jù)注解中 (可以在多個(gè)模型中重用邏輯)
? ?②將驗(yàn)證邏輯封裝在模型對(duì)象中
?
? 2.4.1 自定義注解?
? ?所有的驗(yàn)證注解(Required和Range)特性最終都派生基類(lèi) ValidationAttribute,它是個(gè)抽象類(lèi),在命名空間System.ComponentModel.DataAnnotaions中。
?
?2.4.2 IValidatableObject
? ?
?
?
2.5 Display? ? 改變現(xiàn)實(shí)字段
? ??
?
2.6 ScaffoldColumn
?
2.7 DisplayFormat
?
2.8 ReadOnly
?
?
?2.9 DataType
?
?
2.10 HiddenInput
? ? 在命名空間 System.Web.Mvc中,運(yùn)行時(shí)渲染一個(gè)type屬性為hidden 的輸入元素。
?2.11 UIHint? 這個(gè)指自定義模板,后面將
?
轉(zhuǎn)載于:https://www.cnblogs.com/Sea1ee/p/8597449.html
總結(jié)
以上是生活随笔為你收集整理的MVC5 数据注解和验证的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 3.18 UR17
- 下一篇: C++ inline