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

來源:互聯網
上載者:User

今天我們繼續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 { get; set; }
 6 
 7         [Required]
 8         [DataType(DataType.EmailAddress)]
 9         [Display(Name = "Email address")]
10         public string Email { get; set; }
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 { get; set; }
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 { get; set; }

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屬性

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

 

四、CompareAttribute屬性

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

 

五、RegularExpressionAttribute屬性 
 這個屬性將使用參數裡設定的Regex來驗證當前屬性是否合法,這個我會比較常用,像使用者註冊等等都會對其進行驗證。

 

六、RangeAttribute屬性

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

 

七、RemoteAttribute屬性

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

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.