开发者社区> 杰克.陈> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

跟我一起学习ASP.NET 4.5 MVC4.0(三)

简介: 原文 http://www.cnblogs.com/xdotnet/archive/2012/03/07/aspnet_mvc40_validate.html 今天我们继续ASP.NET 4.5 MVC 4.0,前两天熟悉了MVC4.0在VS11和win8下的更新,以及MVC中的基础语法和几个关键字的使用。
+关注继续查看

原文 http://www.cnblogs.com/xdotnet/archive/2012/03/07/aspnet_mvc40_validate.html

今天我们继续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中有用到的一些技巧进行说明。

关于作者:网魂小兵

文章出处:http://xdotnet.cnblogs.com

本文可以随意转载,摘抄等非商业用途。

为了尊重作者成果,在转载和摘抄的时候请留下作者名称和出处。

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
跟我一起学习ASP.NET 4.5 MVC4.0(六)
原文http://www.cnblogs.com/xdotnet/archive/2012/07/21/aspnet40_webpage20.html 这一系列文章跨度有点大,由于最近忙于其他事情,没有更新,今天重新安装了下Win8系 统,VS2012和SQLServer 2012,顺便抽空继续一篇。
971 0
跟我一起学习ASP.NET 4.5 MVC4.0(五)
原文http://www.cnblogs.com/xdotnet/archive/2012/03/29/aspnet_mvc4_html_control_checkboxlist.html 前面几篇文章介绍了一下ASP.NET MVC中的一些基础,今天我们一起来学习一下在ASP.NET MVC中控件的封装。
897 0
跟我一起学习ASP.NET 4.5 MVC4.0(四)
原文http://www.cnblogs.com/xdotnet/archive/2012/03/27/aspnet_mvc4_authorize.html 前几个文章中介绍了一些关于MVC4.0的东东,今天我们来看一下登陆验证,也可以说是 权限验证,即AuthorizeAttribute。
856 0
跟我一起学习ASP.NET 4.5 MVC4.0(二)
原文http://www.cnblogs.com/xdotnet/archive/2012/03/06/aspnet_mvc40_keywords.html 上一篇文章中(跟我一起学习ASP.NET 4.5 MVC4.0(一)) 我们基础的了解了一下ASP.NET MVC4.0的一些比较简单的改变,主要是想对于MVC3.0来说的。
967 0
跟我一起学习ASP.NET 4.5 MVC4.0(一)
原文 : http://www.cnblogs.com/xdotnet/archive/2012/03/05/aspnet_mvc40_preview.html   由于上面一个项目使用的是ASP.NET4.0 MVC3.0,在招人的时候发现很多人有听说过MVC,但是却是没用过,对MVC也只是一知半解,最近想给团队成员做一个系统的解说,让大家都可以学习一 下ASP.NET MVC3.0。
1082 0
+关注
杰克.陈
一个安静的程序猿~
10424
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载