1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,第4章数据验证与注解,ASP.NETMVC网站设计教程,在ASP.NETMVCWeb开发中,从处理验证的位置可以分为,客户端验证和服务端验证。客户端的验证基本上用脚本代码,实现,如JavaScript或VBScript等。验证过程不提交到远程服,务器,可以提供快速反馈,使用户能够及时察觉所填写数据,的不合法性,给人一种运行桌面应用程序的感觉。
2、服务器端,验证通常用高级语言编写代码实现,如C#或VB等。所有的验,证过程都交到远程服务器处理,可以用来避免出现一些漏洞,或者异常。所有客户端输入的内容,都将送往服务器处理,,验证数据的有效性。,2,1.客户端验证的优点,(1)本地机验证、方便、快捷;,(2)可以减少服务器负载;,(3)缩短用户等待时间;,(4)用户体验好。,2.客户端验证的缺点,(1)只适用于满足字符、数字等特点规则的一些应用,无,法适应复杂的规则;,(2)兼容性不好。,3,3.服务器端验证的优点,(1)安全性高;,(2)兼容性强;,(3)可以对复杂的规则进行验证。,4.服务器端验证的缺点,(1)服务器负载重;,(2)用户等
3、待时间长;,(3)用户体验一般。,4,(3)可以对复杂的规则进行验证。,DatabaseGeneratedReadOnly(true),NETMVC内置数据验证属性,NETMVC内置数据验证属性,相比于JQuery插件或者AJAX第三方验证,基于ASP.,DatabaseGeneratedReadOnly(true),与其他的验证属性不同,Remote所属的命名,ColumnNotMapped,服务器端验证进行了比较,分析了各自的优缺点和适合的应,验证过程不提交到远程服,客户端验证和服务端验证。,ColumnNotMapped,Remote属性利用服,实现,如JavaScript或VBScri
4、pt等。,设置数据字段的格式设置数据字段是否只读,相比于JQuery插件或者AJAX第三方验证,基于ASP.NET,MVC框架的内置数据验证在使用更加方便,下面对ASP.NET,MVC内置数据验证属性进行详细讲解。常使用的ASP.NET,MVC内置数据验证属性如表4.1所示。,表4.1ASP.NETMVC内置数据验证属性,属性名Required,说明必填验证,StringLengthRange,RegularExpression,Compare,MinLength,输入长度验证(可用于密码输入字段)输入取值范围验证,正则表达式验证,必须符合某个正则表达式,比较验证输入字符串的最少长度验证(可用
5、于密码输入字段,),输入字符串的最大长度验证(可用于密码输入字段),回调验证电子邮件地址验证,返回值为true表示验证通过,电话验证信用卡号码验证,URL页面缓存验证,MaxLength,RemoteEmailAddress,PhoneCreditCard,UrlOutputCache,5,Remote回调验证,即字段的远程验证。Remote属性利用服,务器端的回调函数执行客户端的验证逻辑,当执行到Remote,特性的元数据时,会自动地调用相应的控制器下的Action完成,远程数据验证。与其他的验证属性不同,Remote所属的命名,空间为System.Web.Mvc,并且需要在Scripts文
6、件夹中导入,jquery.validate.js和jquery.validate.unobtrusive.js两个文件。,Remote远程验证的语法格式如下。,Remote(stringaction,stringcontroller,属性:ErrorMessage,参数action表示要调用的方法名,参数controller表示要调用,的方法所在的控制器名,ErrorMessage属性表示未通过验证时,错误信息。,6,ASP.NET,MVC除了特定的属性验证,还具有强大的扩展性,,允许继承某个验证类创建自定义的验证规则完成某些特殊的验,证。比如在输入部门代码时,要求不能输入汉字,则可以创建,自
7、定义验证来实现。,publicclassDeptAttribute:RegularExpressionAttribute,publicDeptAttribute():base(/u4E00-u9FA5/g),创建完DeptAttribute自定义验证属性以后,所有部门信息输入,时都可以直接使用该自定义验证属性进行验证。,DeptAttribute(ErrorMessage=部门代码不能含有中文),publicstringDeptNoget;set;,7,数据注解也称为数据显示注解,主要作用是提升页面关键,字段显示的友好性,比如字段FirstName在页面上的显示时设,置为更合理的FirstNa
8、me等。ASP.NET,示注解如表4.3所示。,MVC中常用的数据显,表4.3ASP.NETMVC内置数据显示相关注解,属性名Dispaly,说明设置字段的显示名称,DisplayNameScaffoldColumn,DisplayFormatReadOnly,EditAbleDataType,UIHintHiddenInput,指定本地化的字符串(习惯用语类)隐藏HTML辅助方法,设置数据字段的格式设置数据字段是否只读,设置数据字段是否可编辑设置属性的数据类型,设置动态数据用来显示数据字段的模板设置是否将属性值或字段值呈现为隐藏的input元素,8,数据映射是指模型中的C#类向数据库中表转换
9、的对应关系,数,据映射注解则表示这种转换时的约束。可以将C#中各类中的字段,对应设置为数据表的主外键,也可以将字段设置为与表中的别名,或者其他的对应字段,常用的数据映射注解如表4.4所示。,表4.4ASP.NETMVC常见的数据映射注解,属性名Key,主键字段说明,ColumnNotMapped,TableForeignKey,DatabaseGeneratedReadOnly(true),数据库列属性映射不映射到对应的字段,指定类将映射到的数据表表示关系中用作外键的属性,指定数据库生成属性值的方式(只读的不可更新属性EF不追踪属性的变化),9,本章主要介绍了数据验证与显示注解的基本特征及作用;,对数据验证及显示注解进行了详细的讲解;将客户端验证和,服务器端验证进行了比较,分析了各自的优缺点和适合的应,用;详细地介绍了数据显示注解和数据映射注解的应用。,10,答疑时间,?,11,谢谢大家的光临!,12,






