深入浅出 MVC 数据验证 2.0 [附演示源码]
2010-07-08 16:00
204 查看
上次的文章得到了很多读者的支持,所以感谢一下大家,特别感 谢指出不足之处的几位朋友,我在原文中已经进行了修改。
P.S. 图片中的 dozer.net.cn 其实打开后就是我博客园的地址,会自动跳转,这个好记一点
今天在这里给大家介绍一下MVC的数据验证框架。
在1.0版中,很多朋友提出了怎么使用客户端验证,今天找了一些资料,发现了客户端验证的方法。
这时候,BLL层和网站会分离的不彻底,因为很多代码不得不在网站中写。
而在MVC的数据验证框架中,甚至可以不用BLL层,而在比BLL层更底层的Model 层书写数据验证的代码。
并且最后能在网页上显示出来。
此图这就是最后的效果
User
这样写好后,便可以在Entity Framework中使用Model验证了
那MVC的客户端数据验证有什么不同呢?
不同之处就在于,你可以不用写一行javascript代码!
下面让我们来实现它
先添加3个javascript文件,请按顺序添加:
然后在View里添加一行代码:(注意要添加在Form前)
注意点:这里,其实是这个函数把Model验证转换成了javascript代码,对! 它只能转换Model验证,BLL验证无法转换,因为BLL验证涉及到复杂的代码,不可能全部转换成javascript吧?并且BLL验证很多还需要和 数据库交互。
那如果想把BLL验证也做成“客户端”验证怎么办?(只有可能用ajax实现无刷新验 证,而不是真正的客户端验证)
目前看来先只能手写了
如有收获,我会继续更新~
演示中的源码(更新至2.0):下载
如果感觉有收获,那就点一下支持吧~
如有疑问或者我文章中有不妥之处,请在下方留言,或者发送邮件 到:dozer@dozer.net.cn
P.S. 图片中的 dozer.net.cn 其实打开后就是我博客园的地址,会自动跳转,这个好记一点
今天在这里给大家介绍一下MVC的数据验证框架。
在1.0版中,很多朋友提出了怎么使用客户端验证,今天找了一些资料,发现了客户端验证的方法。
1、MVC中的数据验证框架有何优点?
在Asp.net时代,或者没有使用MVC的验证框架,一般是在BLL层中进行数据验 证,但是BLL层的返回值又只能返回一个东西,比如一个字符串,而实际情况中,数据验证是很复杂的。这时候,BLL层和网站会分离的不彻底,因为很多代码不得不在网站中写。
而在MVC的数据验证框架中,甚至可以不用BLL层,而在比BLL层更底层的Model 层书写数据验证的代码。
并且最后能在网页上显示出来。
此图这就是最后的效果
User
[MetadataType(typeof(UserMetaData))] public partial class User { } public class UserMetaData { [Required(ErrorMessage = "名字为空")] [StringLength(10, ErrorMessage = "名字长度不得超过10个字符")] public string Name { get; set; } [Required(ErrorMessage = "密码为空")] [StringLength(20, ErrorMessage = "密码长度不得超过20个字符")] public string Password { get; set; } [Required(ErrorMessage = "帐号为空")] [StringLength(10, ErrorMessage = "帐号长度不得超过10个字符")] public string Passport { get; set; } }
这样写好后,便可以在Entity Framework中使用Model验证了
8、如何使用客户端验证
任何平台都可以靠js来实现客户端验证,但是我这里探讨的是MVC的数据验证。那MVC的客户端数据验证有什么不同呢?
不同之处就在于,你可以不用写一行javascript代码!
下面让我们来实现它
先添加3个javascript文件,请按顺序添加:
然后在View里添加一行代码:(注意要添加在Form前)
注意点:这里,其实是这个函数把Model验证转换成了javascript代码,对! 它只能转换Model验证,BLL验证无法转换,因为BLL验证涉及到复杂的代码,不可能全部转换成javascript吧?并且BLL验证很多还需要和 数据库交互。
那如果想把BLL验证也做成“客户端”验证怎么办?(只有可能用ajax实现无刷新验 证,而不是真正的客户端验证)
目前看来先只能手写了
如有收获,我会继续更新~
9、Ending
演示中的源码(更新至2.0):下载
如果感觉有收获,那就点一下支持吧~
如有疑问或者我文章中有不妥之处,请在下方留言,或者发送邮件 到:dozer@dozer.net.cn
相关文章推荐
- 深入浅出 MVC 数据验证 2.0 [附演示源码]
- 深入浅出 MVC 数据验证 2.0 [附演示源码]
- 转载:深入浅出 MVC 数据验证 2.0 [附演示源码]
- (转)深入浅出 MVC 数据验证 [附演示源码]
- 深入浅出 MVC 数据验证 2.0
- asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
- 第六章:数据验证——深入浅出学Spring Web MVC
- MVC实现数据验证 2.0
- ASP.NET MVC Preview 5 演示Demo #7 实现JQuery表单数据验证及JQuery操作Html元素
- asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
- asp.net mvc 2.0 数据验证
- 第六章:数据验证——深入浅出学Spring Web MVC
- MVC数据验证深入浅出
- asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
- AjaxPro.NET框架实现服务端即时数据验证(Asp.net 2.0)(示例代码下载)
- ASP.NET MVC 入门8、ModelState与数据验证
- ASP.NET MVC 3.0前后台统一验证类UniValidate,附源码 转载
- Ajax即时实现服务端数据验证(Asp.net 2.0)(示例代码下载)
- ASP.NET MVC数据验证(下)
- ASP.NET MVC2 数据模型验证类库:MVC Foolproof Validation