跟我一起學習ASP.NET 4.5 MVC4.0(三)


今天我們繼續ASP.NET 4.5 MVC 4.0,前兩天熟悉了MVC4.0在VS11和win8下的更新,以及MVC中的基礎語法和幾個關鍵字的使用。了解了這些就可以對MVC進一步認識,相信很多人都對MVC中三個模塊有一定的認識。今天我們主要來看一下Models模塊,這個和我們三層里用的實體類有點相似,不同的是這里的屬性需要添加一些驗證屬性(Attribute)或其他的一些Filter(過濾器)。在MVC中驗證屬性主要包含在System.ComponentModel.DataAnnotations.dll程序集中,所以需要對其添加引用。

 

首先我們先看一下注冊模型的代碼,然后對其中使用到的驗證屬性等進行進一步的認識,代碼如下。

 1  public  class RegisterModel
 2     {
 3         [Required]
 4         [Display(Name =  " User name ")]
 5          public  string UserName {  getset; }
 6 
 7         [Required]
 8         [DataType(DataType.EmailAddress)]
 9         [Display(Name =  " Email address ")]
10          public  string Email {  getset; }
11 
12         [Required]
13         [StringLength( 100, ErrorMessage =  " The {0} must be at least {2} characters long. ", MinimumLength =  6)]
14         [DataType(DataType.Password)]
15         [Display(Name =  " Password ")]
16          public  string Password {  getset; }
17 
18         [DataType(DataType.Password)]
19         [Display(Name =  " Confirm password ")]
20         [Compare( " Password ", ErrorMessage =  " The password and confirmation password do not match. ")]
21          public  string ConfirmPassword {  getset; }

22     } 

一、RequiredAttribute屬性

 使用這個標記的屬性表示必須,如果客戶端返回的數據中沒有設置此項,則在ModelState.IsValid屬性將為false。錯誤信息將會包含在ModelState對象里,客戶端就可以通過@Html.ValidationMessageFor來顯示模型屬性驗證錯誤信息。讓我們打開VS11自帶的Internet Application項目,並使用Page Inspector來調試程序,雙擊注冊按鈕,我們就可以看到這個驗證的相關信息,如下圖所示。

 

 在圖中就可以看到這個注冊模型RequiredAttribute驗證標記的驗證信息,在input標記中的data-val-required屬性呈現的是嚴重信息,這些屬性都是微軟擴展的供JQuery和其驗證擴展庫使用。如果你對客戶端驗證感興趣可以研究一下Scripts目錄下的“jquery.validate.js”和“jquery.validate.unobtrusive.js”,這樣你就會知道他是如何工作的了。

 

二、DisplayAttribute屬性

 這個屬性主要用於前台顯示時的字符串,比如注冊模型中的UserName屬性在前台顯示的就是“User name”,從上面圖片中的HTML代碼中就可以看出來。當然我們也可以把它改成“用戶名”,這樣執行后就不會顯示英文了。

 

三、StringLengthAttribute屬性

 這個屬於驗證屬性,用於判斷當前屬性字符串長度,可以用設置最小值和最大值。這個比較少用,我做過的項目只有在密碼上回用這個,其他一般會給正則表達式進行驗證。

 

四、CompareAttribute屬性

 這個驗證屬性主要用於對比兩個屬性的值是否相同,一般用於密碼和確認密碼,因為這兩個是要一樣的。

 

五、RegularExpressionAttribute屬性 
 這個屬性將使用參數里設置的正則表達式來驗證當前屬性是否合法,這個我會比較常用,像用戶注冊等等都會對其進行驗證。

 

六、RangeAttribute屬性

 這個屬性為范圍區間驗證,可以是數字,也可以是對象,需要指定最小值和最大值,如果不是數字還需要指定對比的類型。

 

七、RemoteAttribute屬性

 這個屬性實現了遠處驗證,參數主要是設置服務端的控制器和方法名稱,比如我們的要驗證注冊模型中的UserName是否已經被注冊,就可以使用這個Remote屬性。

 

 在寫這篇文章的時候發現基本屬於3.0的范疇,在博客園中已經有人寫的比我好,可能是因為在我看來很多都已經知道了,沒必要寫出來。我在博客園里收了一下“MVC 3.0系列”感謝一下“記憶失去的青春”,又不懂的可以看看他寫的系列文章。下一篇文章我將主要注意ASP.NET MVC4.0的更新內容,而3.0中有用到的一些技巧進行說明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM