架構師_程序員

 找回密碼
 注冊[Register]

QQ登錄

只需一步,快速開始

查看: 534|回復: 0
打印 上一主題 下一主題

[ASP.NET] Asp.net core 模型數據驗證

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2019-11-21 10:49:51 | 只看該作者
用法同Asp.net MVC類似。實質上在UI層加了一層js驗證,在控制器加了一層后臺驗證。
UI層js驗證是引用兩個js腳本起作用

如果不引用這個腳本,前端html頁面驗證不起作用。
驗證的提示信息通過Tag helper 的 asp-validation-for,如:<span asp-validation-for="Rating" class="text-danger"></span>
驗證失敗時,提示信息自動加入到span標簽文本中。

具體示例

1創建一個要驗證的類型

Required 特性表示屬性不能為空,但不能校驗空格
值類型(如decimal, int, float, DateTime) 本身是必須的,并不需要 [Required] 特性。
Range 特性限制值在指定的范圍內。
StringLength 特性可讓你設定字符串最大長度,以及最小長度(可選)。
RegularExpression特性校驗正則表達式。

[Compare("Password", ErrorMessage = "兩次輸入的密碼不一致")]
[Display(Name = "確認密碼")]
[DataType(DataType.Password)]

常見內置驗證屬性:
[CreditCard]:驗證屬性是否為信用卡格式
[Compare]:驗證模型中的兩個屬性是否匹配
[EmailAddress]:驗證屬性是否為電子郵件格式
[Phone]:驗證屬性是否為電話號碼格式
[Range]:驗證屬性值是否在給定范圍內
[RegularExpression]:驗證數據是否與指定的正則表達式匹配
[Required]:必填的屬性
[StringLength]:驗證字符串屬性的最大長度
[Url]:驗證屬性是否為網址格式

注意:禁止在 DateTime 上使用 Range 特性來進行 JQuery 日期驗證。因為不管填入的時間值在不在Range范圍內,js驗證都會提示錯誤。

2 在控制器進行驗證

3 UI頁面



如圖所示:放映日期提示錯誤,正是由于
DateTime 類型上使用 Range 導致的,所以禁止在DateTime 上使用 Range 。

5 自定義數據驗證失敗時的提示信息

校驗特性上使用ErrorMessage屬性

[StringLength(30,ErrorMessage = "Genre的長度不能超過30")]





上一篇:譚浩強《C++程序設計》
下一篇:Jquery 獲取表單FORM所有元素進行AJAX提交
帖子永久地址: 

架構師_程序員 - 論壇版權1、本主題所有言論和圖片純屬會員個人意見,與本論壇立場無關
2、本站所有主題由該帖子作者發表,該帖子作者與架構師_程序員享有帖子相關版權
3、其他單位或個人使用、轉載或引用本文時必須同時征得該帖子作者和架構師_程序員的同意
4、帖子作者須承擔一切因本文發表而直接或間接導致的民事或刑事法律責任
5、本帖部分內容轉載自其它媒體,但并不代表本站贊同其觀點和對其真實性負責
6、如本帖侵犯到任何版權問題,請立即告知本站,本站將及時予與刪除并致以最深的歉意
7、架構師_程序員管理員和版主有權不事先通知發貼者而刪除本文

碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
您需要登錄后才可以回帖 登錄 | 注冊[Register]

本版積分規則

免責聲明:
碼農網所發布的一切軟件、編程資料或者文章僅限用于學習和研究目的;不得將上述內容用于商業或者非法用途,否則,一切后果請用戶自負。本站信息來自網絡,版權爭議與本站無關。您必須在下載后的24個小時之內,從您的電腦中徹底刪除上述內容。如果您喜歡該程序,請支持正版軟件,購買注冊,得到更好的正版服務。如有侵權請郵件與我們聯系處理。

Mail To:help@itsvse.com

QQ|Archiver|手機版|小黑屋|架構師 ( 魯ICP備14021824號-2 )|網站地圖

GMT+8, 2020-7-12 11:05

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表
捕鸟达人老版