




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ASP.NETMVC程序开发第六章数据验证第六章数据验证ASP.NETMVC程序开发第
2页6.1MVC数据验证概述6.2验证属性的使用6.3自定义验证6.4扩充基于EntityFramework的数据模型小结6.1MVC数据验证概述ASP.NETMVC程序开发第
3页原因:ASP.NETMVC中视图(View)负责向用户呈现操作界面、收集数据并传回服务器。在用户使用过程中,由于用户疏忽或恶意原因,用户输入数据对系统可能存在各种隐患,因此需要对从用户界面收集的数据进行各种规则的验证,确保数据符合系统要求。6.1MVC数据验证概述ASP.NETMVC程序开发第
4页双重验证:Web应用程序必须对用户输入进行验证,不仅需要在客户端进行验证,在服务器端也需要进行验证。客户端进行验证会对用户向表单中输入的数据给出即时的反馈,提高用户体验;在服务器端进行用户输入验证除了服务器端验证可以实现更复杂的验证逻辑外,主要是由于来自网络的数据是不能信息的。6.1MVC数据验证概述ASP.NETMVC程序开发第
5页方案:用户输入数据的验证既包括逻辑验证,也需要实现用户友好的错误提示信息,当验证失败时,把提示信息显示到用户界面上,而且还需要提供从验证失败中恢复的机制。ASP.NETMVC进行验证最主要的是关注验证模型的值。ASP.NETMVC验证框架是可扩展的,可以采用开发人员想要的方式构建验证模式,默认的方法是声明式验证。6.1MVC数据验证概述ASP.NETMVC程序开发第
6页流程:6.1MVC数据验证概述ASP.NETMVC程序开发第
7页步骤:1.用户提交数据时在客户端浏览器中进行验证,验证操作包括:验证所有必须填写的内容是否已填写;验证数据的格式是否符合要求;如果可验,则验证数据的数据类型;如果发现有数据是无效的,则立即反馈如何修改无效数据为有效数据的信息给客户,但数据不提交给服务器,当用户修改所有数据符合验证要求后,用户才能把数据提交给服务器。6.1MVC数据验证概述ASP.NETMVC程序开发第
8页步骤:2.当所用客户端验证都通过后,数据被提交给服务器;3.在服务器端对数据按服务器的验证要求进行数据有效性验证,以保证数据符合业务规则的要求以及请求数据中不包含潜在的攻击。如果数据验证失败,则数据不会按业务流程进行处理而是会把验证的错误信息反馈回客户端,让用户进行必要的修改;4.当服务器端对数据有效性验证通过后,业务处理流程才继续进行,最终显示一个处理结果的View或下载文件等。6.2验证属性的使用ASP.NETMVC程序开发第
9页客户端方案:如果开发人员自行编写在客户端进行用户数据有效性验证的代码,则不仅工作繁琐,而且很可能会有各种漏洞,为此ASP.NETMVC提供了简单方便的方式提供用户输入数据有效性验证功能,主要通过对数据添加相应的属性,并在客户端配合对应的验证用JavaScript代码库。由于JavaScript代码库已由IDE在创建项目时提供,所以开发人员主要是在ViewModle中为各属性添加需要的各种属性以确定各属性必须满足的各种有效性验证要求。6.2验证属性的使用ASP.NETMVC程序开发第
10页示例:用户账号创建及管理的数据有效性验证6.2验证属性的使用ASP.NETMVC程序开发第
11页服务器端方案:当客户端的浏览器由于禁用了JavaScript脚本而无法进行有效性验证,直接把空数据提交给服务器,则服务器的注册功能实际执行的Action(即本示例对应AccountController中的Register(RegisterModelmodel)这一Action),通过应用ModelState.IsValid这一属性进行服务器端的有效性验证判断,自动应用ViewModel中各属性设定的验证规则进行了有效性验证,无效数据(空数据)不会被写入到系统中。6.2验证属性的使用ASP.NETMVC程序开发第
12页验证过程代码:ASP.NETMVC由三个部分代码完成了客户端和服务器端的用户输入数据有效性验证全过程,此三部分代码为:View中使用的强类型Model对应的类中各属性使用验证属性;View中引入对应的客户端验证用JQuery代码;服务器对应Action中使用ModelState.IsValid来判断用户输入数据的有效性。6.2验证属性的使用ASP.NETMVC程序开发第
13页自定义错误提示消息及其本地化:验证错误时显示的原始错误信息对于最终用户来说并不友好的错误提示消息,例如其中可能会有英文单词、计算机专业词汇等。为此,每个验证属性都允许传递一个带有自定义错误提示消息的参数,这一参数在上一小节示例的代码基础上,直接添加在原有参数的后面,并用英文的逗号分隔,参数名为ErrorMessage。6.2验证属性的使用ASP.NETMVC程序开发第
14页示例:自定义错误提示消息及其本地化6.3自定义验证ASP.NETMVC程序开发第
15页ASP.NETMVC框架具有良好的扩展性,可以实现自定义验证逻辑。一般自定义验证的实现方法主要为:将验证逻辑封装在自定义的验证属性中;将验证逻辑封装在模型对象中。把验证逻辑封装在自定义验证属性中可以轻松地实现在多个模型中重用验证逻辑;而将验证逻辑直接放入模型对象中,则可以较容易地编码实现,但这种方式不利于实现验证逻辑的重用。6.3自定义验证ASP.NETMVC程序开发第
16页自定义验证属性示例:限制用户电子邮箱地址的最大长度6.3自定义验证ASP.NETMVC程序开发第
17页IValidatableObject:将验证逻辑封装在模型对象中的方法也就是自验证模型技术,自验证模型主要是Model自身知道如何验证自身的模型对象。一个Model通过实现IValidatableObject接口来实现对自身的验证。6.3自定义验证ASP.NETMVC程序开发第
18页IValidatableObject示例:直接在Model中实现对ClientName长度的验证6.4扩充基于EntityFramework的数据模型ASP.NETMVC程序开发第
19页原因:随着模板和自动代码生成技术的应用,有许多应用中都通过各类工具生成一些类(如EntityFramework等各类ORM技术生成的基本数据模型中的类),但这些类可能难以满足全部的要求,所以需要扩充这些工具生成的数据模型类。在实际开发过程中,虽然可以通过手工修改工具生成的类来满足开发的要求,但一般情况下,不应用手工去修改工具生成的类,因为开发过程中很可能需要多次通过工具重新生成这些类,那么在重新生成时,这些类中手工修改的内容就会自动被清除。6.4扩充基于EntityFramework的数据模型ASP.NETMVC程序开发第
20页解决方案:利用部分类(PartialClass)的辅助机制来实现对EntityFramework生成类(也就是应用于系统的各Model类)的扩充;通过Metadata来实现对Model进行再定义;6.4扩充基于EntityFramework的数据模型ASP.NETMVC程序开发第
21页示例:应用partial扩展原有Model6.4扩充基于EntityFramework的数据模型ASP.NETMVC程序开发第
22页示例:定义Model的Metadata本章小结
ASP.NETMVC程序开发第
23页
本章内容主要是展示如果实现对进行数据进行验证的技术,由于MVC中主要通过Model实现数据的传递,所以主要也就是对Model进行相应的属性有效性验证。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品企业全员安全生产责任制
- 食品安全生产法律法规培训内容记录
- 安全干部培训
- 安全生产工作例会会议纪要
- 延边市重点中学2025年高二物理第二学期期末检测试题含解析
- 2025年江苏省海头高中物理高一第二学期期末联考模拟试题含解析
- 信息网络安全的培训
- 组织1次生产安全事故应急救援预案
- 车间安全生产培训记录
- 2025年四川省南充市阆中中学物理高二下期末统考模拟试题含解析
- 2025年广西中考语文试题卷(含答案)
- 建设工程法律培训
- 江苏省南通市2024-2025学年高二下学期6月期末质量监测政治试题(含答案)
- (高清版)DB31∕T 1427-2023 首席质量官评价规范
- 一级医院医保管理制度
- 2025年南京市中考数学真题试卷
- 2025年呼伦贝尔农垦集团有限公司招聘笔试参考题库含答案解析
- 2025年重庆市中考数学试卷真题(含标准答案)
- 2025年内蒙古煤炭地质勘查(集团)一零九有限公司招聘笔试参考题库含答案解析
- T/CBMCA 039-2023陶瓷大板岩板装修镶贴应用规范
- 涂装厂协议书范本
评论
0/150
提交评论