亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 建站經驗 > 正文

ASP.NET MVC 5 - 給數據模型-添加校驗器

2019-11-02 14:26:13
字體:
來源:轉載
供稿:網友

  在本節中將會給Movie模型添加驗證邏輯。并且確保這些驗證規則在用戶創建或編輯電影時被執行。

 拒絕重復 DRYASP.NET MVC 的核心設計信條之一是DRY: "不要重復自己(DRY --Don’t Repeat Yourself)"。ASP.NET MVC鼓勵您指定功能或者行為,只做一次,然后將它應用到應用程序的各個地方。這可以減少您需要編寫的代碼量,并減少代碼出錯率,易于代碼維護。 給ASP.NET MVC 和 Entity Framework Code First 提供驗證支持是 DRY 信條的一次偉大實踐。您可以在一個地方 (模型類) 中以聲明的方式指定驗證規則,這個規則會在應用程序中的任何地方執行。 讓我們看看您如何在本電影應用程序中,使用此驗證支持。 給電影模型添加驗證規則您將首先向Movie類添加一些驗證邏輯。 打開Movie.cs 文件,注意到System.Web 命名空間并未包含System.ComponentModel.DataAnnotations. DataAnnotations提供了一組內置的嚴重屬性,可供您應用于類、屬性。(DataAnnotations也包含一個DataType屬性,來幫助格式化的辦法來校驗) 更新Movie類,以利用內置的Required、 StringLength, RegularExpression和Range驗證屬性。以下面的代碼為例,以應用驗證屬性。 復制代碼public class Movie { public int ID { get; set; } [StringLength(60, MinimumLength = 3)] public string Title { get; set; } [Display(Name = "Release Date")] [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] public DateTime ReleaseDate { get; set; } [RegularExpression(@"^[A-Z]+[a-zA-Z''-'s]*$")] [Required] [StringLength(30)] public string Genre { get; set; } [Range(1, 100)] [DataType(DataType.Currency)] public decimal Price { get; set; } [RegularExpression(@"^[A-Z]+[a-zA-Z''-'s]*$")] [StringLength(5)] public string Rating { get; set; } }復制代碼  在StringLength屬性設置字符串的最大長度,它會在數據庫上設置此限制,因此的數據庫schema將發生變化。右鍵單擊電影表, 在服務器資源管理器(Server  explorer),然后單擊打開表定義(Open Table Definition): clip_image002 在上面的圖片中,你可以看到所有的字符串字段被設置為了NVARCHAR  (MAX)數據類型.  我們將使用遷移來更新架構。生成解決方案,然后打開軟件包管理器控制臺(the Package Manager Console ),輸入如下命令: add-migration DataAnno
樂樂影院[www.aikan.tv/special/leleyingyuan/]
tations update-database 當這個命令完成后,Visual Studio將打開類代碼文件,它定義了新DbMIgration派生類(DataAnnotations),你可以在Up方法看到更新架構約束代碼如下所示: 復制代碼public override void Up() { AlterColumn("dbo.Movies", "Title", c => c.String(maxLength: 60)); AlterColumn("dbo.Movies", "Genre", c => c.String(nullable: false, maxLength: 30)); AlterColumn("dbo.Movies", "Rating", c => c.String(maxLength: 5)); }復制代碼  該流派(Genre)字段不再可為Null(也就是說,你必須輸入一個值)。該評級(Rating)字段最大長度為5, 標題的最大長度為60。標題(Title )和價格 (Price)的范圍的最小長度并沒有更改。 請在數據庫中,檢查電影表的schema: clip_image004 該字符串字段顯示新的長度限制和流派字段(Genre)不能再為空。 驗證屬性指明您想要應用到模型屬性的行為。Required 和MinimumLength屬性指出某一屬性不可為空,但沒有什么能夠阻止用戶輸入空格來驗證。該RegularExpression屬性是用來限制哪些字符可以輸入。在上面的代碼中,流派(Genre)和等級(Rating)只能使用字母(空格,數字和特殊字符是不允許的)。該范圍(Range )屬性約束的值在一個指定范圍內。在StringLength 屬性允許您設置一個字符串屬性的最大長度,以及最小長度(可選的)。值類型(decimal, int, float, DateTime)有固有必需設置的,不需要的Required屬性。 Code First確保你的模型在指定class上在驗證規則強制執行之前應用程序將變更儲存在數據庫中。例如,下面的代碼將拋出一個DbEntityValidationException 異常時,調用SaveChanges方法時,因為幾個必要的Movie屬性缺少: 復制代碼MovieDBContext db = new MovieDBContext(); Movie movie = new Movie(); movie.Title = "Gone with the Wind"; db.Movies.Add(movie); db.SaveChanges(); // <= Will throw server side validation exception復制代碼  上面的代碼會拋出以下異常: Validation failed for one or more entities. 參閱  'EntityValidationErrors' 屬性獲得更多信息. 具有通過.NET Framework會自動強制執行的驗證規則, 有助于使你的應用程序更加健壯。它還確??梢圆粫涷炞C的東西,即在不經意間不會讓壞的數據寫入數據庫。 ASP.NET MVC 的驗證錯誤UI重新運行應用程序,瀏覽 /Movies的 URL。 單擊Create New鏈接,來添加一部新電影。在窗體中填寫一些無效值,然后單擊Create按鈕。 如同jQuery的客戶端驗證來檢測到錯誤時,它會顯示一個錯誤消息。   注意,為了使jQuery支持使用逗號的非英語區域的驗證 ,需要設置逗號(",")來表示小數點,如本教程前面所述, 你須引入NuGet globalize。請注意,表單在每一個相應的驗證錯誤消息旁邊,已經自動使用紅色邊框的顏色突出顯示文本框指明無效數據。這些錯誤是強制執行了客戶端端(使用JavaScript和jQuery)和服務器端(如果用戶禁用了JavaScript)。 一個真正的好處是,你并不需要更改MoviesController類或Create.cshtml視圖中的一行代碼,來啟用此驗證的用戶界面。您在前面教程所創建的控制器和視圖會自動啟用,使用驗證指明的Movie model類的屬性。使用Edit行為方法,同樣的驗證方法也完全適用。直到沒有任何客戶端驗證錯誤的表單數據,才會被發送回服務器。您可以通過在HTTP POST方法,用一個斷點來驗證這一點; 或通過使用fiddler tool,或者IE
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩国产在线看| 久久久久久久久久亚洲| 成人av.网址在线网站| 亚洲欧美综合图区| 久久久影视精品| 久久久999精品免费| 国产精品久久久久久一区二区| 国产一区二区三区丝袜| 北条麻妃一区二区三区中文字幕| 亚洲va男人天堂| 亚洲图片欧美日产| 欧美老女人bb| 午夜欧美大片免费观看| 欧美乱妇40p| 国产精品成人免费电影| 成人国产精品一区二区| 国产精品久久久久久久9999| 欧美多人乱p欧美4p久久| 2021国产精品视频| 亚洲国产欧美精品| 欧美人在线观看| 久久精品国产电影| 日韩在线观看免费| 亚洲美女av在线播放| 色妞久久福利网| 国产乱人伦真实精品视频| 97色伦亚洲国产| 久久精品99久久久久久久久| 亚洲精品免费一区二区三区| 欧美日韩精品在线播放| 亚洲激情视频在线| 国产成人精品久久| 国产精品www色诱视频| 成人黄色在线免费| 538国产精品视频一区二区| 色在人av网站天堂精品| 日韩中文字幕第一页| 欧洲成人免费aa| 日韩在线观看av| 亚洲成人av资源网| 中文字幕综合在线| 色偷偷888欧美精品久久久| 亚洲国产高潮在线观看| 国产精品久久久久久一区二区| 日韩在线观看免费全集电视剧网站| 伊人久久精品视频| 日韩精品在线免费观看| 日韩成人在线观看| 狠狠色香婷婷久久亚洲精品| 日韩成人在线电影网| 国产女人精品视频| 日韩在线视频二区| 九九精品在线播放| 亚洲区一区二区| 色黄久久久久久| 成人国产在线激情| 亚洲免费人成在线视频观看| 色综合久久中文字幕综合网小说| 色中色综合影院手机版在线观看| 国产精品视频内| 国产欧美精品一区二区三区介绍| 日本久久久a级免费| 亚洲精品丝袜日韩| 成人黄色短视频在线观看| 亚洲美女久久久| 久久久噜噜噜久久| 亚洲在线观看视频| 97色伦亚洲国产| 色综合伊人色综合网站| 亚洲成av人乱码色午夜| 国产精品视频自在线| 欧美在线国产精品| 欧美做爰性生交视频| 国内精品久久久久影院优| 欧美一乱一性一交一视频| 日韩亚洲精品电影| 久久久久久久久综合| 日韩中文字幕久久| 国产精品一区二区久久国产| 久久精品91久久香蕉加勒比| 亚洲综合日韩在线| 国产日韩在线精品av| 欧美国产精品日韩| 日韩福利视频在线观看| 日本高清不卡在线| 欧美特级www| 成人观看高清在线观看免费| 亚洲欧美激情在线视频| 亚洲成人在线视频播放| 精品国产乱码久久久久酒店| 911国产网站尤物在线观看| 九九热这里只有精品6| 久久精品国产综合| 久久偷看各类女兵18女厕嘘嘘| 欧美人交a欧美精品| 国产精品久久久久福利| 日韩中文字幕在线精品| 中文字幕在线看视频国产欧美| 亚洲精品国精品久久99热| 日韩最新av在线| 欧美激情一二区| 在线看欧美日韩| 国产精品一区二区av影院萌芽| 欧美日韩国产丝袜美女| 欧美日韩一二三四五区| 欧美中文字幕在线播放| 亚洲精品视频免费在线观看| 精品国产成人av| 欧美刺激性大交免费视频| 不卡av电影在线观看| 日韩精品极品毛片系列视频| 亚洲精品av在线播放| 欧美韩日一区二区| 亚洲精品网站在线播放gif| 欧美成人精品在线播放| 中文字幕视频一区二区在线有码| 日韩亚洲在线观看| 久久久久久久国产| 午夜精品99久久免费| x99av成人免费| 精品中文字幕乱| 成人性生交大片免费观看嘿嘿视频| 在线播放国产一区中文字幕剧情欧美| 国产精品久久久久免费a∨大胸| 欧美午夜精品久久久久久浪潮| 欧美成人免费大片| 国产成人精品在线视频| 精品人伦一区二区三区蜜桃免费| 久久精品夜夜夜夜夜久久| 日韩av在线电影网| 奇米成人av国产一区二区三区| 一区二区三区四区视频| 国产精品私拍pans大尺度在线| 成人有码视频在线播放| 国产成人精彩在线视频九色| 久久午夜a级毛片| 欧美在线观看日本一区| 亚洲成年人在线| 亚洲美女性生活视频| 在线亚洲男人天堂| 日本精品一区二区三区在线| 国产精品91在线| 91精品国产高清久久久久久| 91精品国产色综合久久不卡98| 成人免费视频xnxx.com| 亚洲欧美日韩精品久久| 精品动漫一区二区三区| 国产一区二区三区18| 亚洲成人三级在线| 神马久久桃色视频| 日韩网站免费观看高清| 久久影院模特热| 亚洲成av人片在线观看香蕉| 亚洲一区二区三区乱码aⅴ蜜桃女| 日韩中文字幕网址| 国产在线98福利播放视频| 日韩电影免费在线观看| y97精品国产97久久久久久| 91精品国产91久久久久久吃药| 亚洲精品国产福利| 国产精品小说在线| 日韩一区av在线| 日韩成人在线视频观看| 欧美贵妇videos办公室|