ASP.NET MVC客户端验证
我全都在使用ASP.NET MVC,但是我希望得到改进的领域之一是客户端验证。
我知道最新版本(预览版5)具有许多Validation的新功能,但似乎都在发布页面之后。
我看过史蒂夫·桑德森(Steve Sanderson)的一篇有趣的文章...使用实时验证,Castle.Components.Validator.dll和他制作的验证器框架。
我已经在项目中使用了它,但是我希望将类似的东西集成到官方的ASP.NET MVC版本中。我绝对认为业务规则应该驻留在模型或者控制器上,而不是驻留在视图中。
你们有没有使用过类似的方法?
我们是否知道将类似内容添加到官方ASP.NET MVC版本中?
解决方案
LiveValidation是另一个可以帮助有用的JavaScript库。在此处查看示例(使用ASP.NET MVC):
http://blog.codeville.net/2008/09/08/thoughts-on-validation-in-aspnet-mvc-applications/
"显然,对于一小部分禁用javascript的用户,我们仍然需要在服务器端验证输入。"
只是对此评论的更新。服务器端验证与禁用JavaScript的用户无关。取而代之的是,出于安全性原因,并且需要执行客户端无法完成的复杂验证时,需要使用此方法。表单应始终具有服务器端验证。客户端验证只是为了方便。
恶意用户可以绕过我们已有的任何客户端验证,轻松地将数据发布到表单中。永远不要相信输入数据!
我同意其他海报,客户端验证完全是为了改善用户体验。
查看JQuery Validation插件。基本验证非常容易上手-实际上是一行JS加上在输入控件中添加类名。它也非常强大。我们可以扩展以做任何我们想做的事。
看看这篇博客文章。它描述了如何使用xVal自动生成客户端验证规则,以及如何自动实现远程客户端验证。
看起来该领域将在ASP.NET MVC 2中获得很多改进
http://weblogs.asp.net/scottgu/archive/2009/07/31/asp-net-mvc-v2-preview-1-released.aspx