ASP.NET AJAX验证控件

3

我也使用了ValidatorCallout,感到非常惊喜。你有什么具体的问题或者顾虑吗? - Tim Schmelter
顺便说一句:我不理解你关于服务器端验证的问题。最好进行客户端和服务器端验证。使用ValidatorCallout两者都没有问题。 - Tim Schmelter
理想情况下,我希望所有的验证逻辑都在服务器端,并与业务对象相关联,而不是在客户端为每个字段创建相同的规则。因此,表单将通过 AJAX 调用客户端来验证具有部分页面回传的字段。坦白地说,我也希望有更清晰的 HTML,这样我就不必在 HTML 中嵌入大量的验证控件。 - Josh
1个回答

6
无论是否进行任何客户端验证,您都应该始终执行服务器端验证。这是因为有许多绕过客户端验证的方法,例如关闭js或发送不使用您页面的自定义构建请求。
在客户端和服务器上使用相同的验证规则是一个很好的目标。xVal 是一个不错的选择。
一个非常好的例子是我如何黑掉某个航空公司网站以便我们前往迪拜。当我尝试为我的两岁以下女儿选择特殊餐点时,选择列表中没有“儿童”选项。显然,只有年龄超过2岁的人才有儿童餐。我的大女儿有一个儿童选项。所以我打开了Firebug,添加了这个选项,选择了它并提交了表单。它被接受了。
在飞行中,两份儿童餐按要求出现了。
该死!想起来了,我应该把它改成头等舱! Dyson先生没有准备好!

感谢您查看这个较旧的问题。基本上,我想摆脱运行整个页面客户端验证,因为验证控件会创建大量的JavaScript调用。我正在寻找一种解决方案,可以将我的验证规则放在业务对象中,但使用AJAX通过部分页面回发来模拟客户端验证。服务器端验证始终存在。 - Josh
没问题。使用AJAX调用服务器端验证代码是一个很好的折衷方案。xVal的好处在于你可以在多个客户端和服务器端实现之间进行选择。xVal执行翻译。我个人更喜欢在客户端使用jQuery Validation,在服务器端使用FluentValidation。jQuery验证规则是由xVal根据FluentValidation规则发出的。 - Daniel Dyson
我目前正在使用Web Forms,而不是MVC,但对于我的下一个项目,我想使用MVC并进行研究。看起来xVal已经有一年没有更新了。它仍然是一个活跃的项目吗? - Josh
不确定它有多活跃。您需要联系开发人员了解情况。 - Daniel Dyson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接