ASP.NET MVC 3.0学习系列文章—Model in ASP.NET MVC 3.0
系列文章
ASP.NET MVC 3.0學習系列文章—序
ASP.NET MVC 3.0學習系列文章--Razor and ASP.NET MVC 3.0
ASP.NET MVC 3.0學習系列文章—Controllers in ASP.NET MVC 3.0
ASP.NET MVC
3.0學習系列文章--Dependency Resolution in ASP.NET MVC 3.0?
?
這篇文章主要介紹如下基本分內容:
??
1. Introduction:
在ASP.NET MVC 3.0中, Model模塊主要是在Validation這部分有很大的增強。包括ASP.NET MVC開發團隊自己寫的使用jQuery來進行客戶端驗證的jquery.validate.unobtrusive.js,以及Remote validation等。剛才在園子看到一個同學寫了一篇文章介紹了Remote validation,寫的挺詳細的,大家可以看看。
http://www.cnblogs.com/serafin/archive/2011/01/25/1944848.html
我也會在這篇文章中稍微給大家介紹如何使用remote 驗證。
總的來說ASP.NET MVC 3.0中的Validation主要的改動有如下三個方面:
a.New attributes b. New interfaces, c. Improved client validation story.
?
2. Validation in MVC 3
在驗證方面分為如下幾部分:
??
3.Data Annotations
微軟的的System.ComponentModel.DataAnnotations就是一個好的驗證方法集合。
你可以看看它主要包含的類:
從它包含的這些方法中可以看出它主要是用來做字段的驗證。在ASP.NET MVC或者是Silverlight中微軟都是使用它來做數據的合法性驗證。當然,在ASP.NET MVC 3.0中結合jQuery的客戶端驗證,使Data Annotation發揮的功能更加完美。
??
4.Custom Validation Attributes
在上面的System.ComponentModel.DataAnnotations命名空間中,有ValidationAttibute這個類,所有的attribute類型的驗證方法所在的類都繼承了它。
比如:
上圖中的Required和StringLength,我們看看它們的所在的類:
這么看來我們可以自定義Validation類,它也繼承ValidationAttribute。
自定義類的結構如下:
??
我們現在自定義一個驗證,來驗證輸入的時間是否是在合法的范圍呢。
當你輸入的時間不是在當前月的前6各月內或者是大于當前時間7天,就給出提示信息。
?
5.Self Validation models
這種方式是在model中來結合 ValidationContext和ValidationResult來提供驗證。
?
例如我們的model中有一個startdate和一個enddate字段,要求輸入的enddate不能小于startdate,那么我們可以使用Self validation model這種驗證模式:
運行結果:
?
?
上面兩種驗證方式都是需要整個Form提交數據時post數據,大家估計都不可能接受,所以ASP.NET MVC團隊在ASP.NET MVC 3中添加了下面兩種驗證方式,
Client Validation和Remote Validation。
?
6.Client Validation:
明眼人都會發現,Microsoft這幾年和jQuery團隊走的很近,ASP.NET MVC項目中更是使用了jQuery來實現客戶端驗證。
很欣慰的是微軟終于放棄了之前自己的AJAX庫。。。。。
在使用jQuery的AJAX認證,需要注意如下幾點:
1.Web.Config中添加設置:
?
2.添加js文件:
3.在Html.FormBegain之前添加:
?
我這里有個例子,大家可以看看使用jquery.validate.unobtrusive.mis.js后,客戶端生成的html有什么區別:
本身html的節點中就有了驗證信息。
?
7.Custom Client Validation
ASP.NET MVC團隊提供的這個客戶端驗證方式也是個擴展性非常強的。
?
例子如下:
?
8.remote validation:
remote validation部分我就不作說明了,文章夠長了。。。。。
大家可以看看http://www.cnblogs.com/serafin/archive/2011/01/25/1944848.html 。
我個人覺得這個remote validation的原理就是實時向某個Action Post數據,然后再看返回結果是否為空,不為空就顯示Validation Message。主要還是使用了jQUery的ajax。
?
Nick
轉載于:https://www.cnblogs.com/n-pei/archive/2011/01/26/1945018.html
總結
以上是生活随笔為你收集整理的ASP.NET MVC 3.0学习系列文章—Model in ASP.NET MVC 3.0的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thinkcmf安装模板需要点击右键打开
- 下一篇: 算法学习:主席树(可持久化线段树)