【问题标题】:ASP.NET AJAX Validation ControlsASP.NET AJAX 验证控件
【发布时间】:2011-02-24 07:45:04
【问题描述】:

我在 ASP.NET Web 表单环境中使用 ASP.NET 验证控件。将所有验证规则保留在服务器端是更好的方法,例如使用 AJAX 验证字段,而不会将整个页面发回。

我找到了一个名为 ValidatorCallout (http://www.asp.net/ajax/ajaxcontroltoolkit/samples/ValidatorCallout/ValidatorCallout.aspx) 的控件,但我试图找出是否有更好的方法。

【问题讨论】:

  • 我也使用了 ValidatorCallout,非常惊喜。您的具体问题或顾虑是什么?
  • 顺便说一句:我不明白你关于服务器端验证的问题。最好进行客户端和服务器端验证。 ValidatorCallout 都没有问题。
  • 理想情况下,我拥有服务器端的所有验证逻辑并与业务对象相关联,而不是在客户端的每个字段中创建相同的规则。因此,表单将通过 AJAX 调用客户端以验证具有部分页面回发的字段。坦率地说,我也想要更简洁的 HTML,所以我没有在 HTML 中嵌入大量的验证控件。

标签: asp.net ajax validation


【解决方案1】:

无论您是否进行任何客户端验证,您都应该始终执行服务器端验证。这是因为客户端验证有很多方法,例如关闭 js 或发送不使用您的页面的自定义构建请求。

在客户端和服务器上使用相同的验证规则是一个很好的目标。 xVal 是一个不错的选择。

一个很好的例子是我为了去迪拜旅行而入侵了某个航空公司的网站。当我试图为两岁以下的女儿选择特别餐时,选择列表中没有“儿童”选项。显然,只有 2 岁以上才可以享用儿童餐。我的大女儿可以选择儿童餐。所以我打开了 Firebug,添加了选项,选择了它并提交了表单。它被接受了。

在飞机上按订单提供了两份儿童餐。

该死!想想看,我应该把它改成头等舱!戴森先生,不在球上!

【讨论】:

  • 感谢您查看这个较早的问题。基本上我想摆脱运行整个页面客户端验证,因为验证控件创建了大量的 JavaScript 调用。我正在寻找一种解决方案,我可以在我的业务对象中使用我的验证规则,但使用 AJAX 通过部分页面回发来模拟客户端验证。服务器端验证将始终到位。
  • 没问题。使用 AJAX 调用服务器端验证代码是一个很好的折衷方案。 xVal 的好处是您可以在多个客户端和服务器端实现之间进行选择。 xVal 执行翻译。我个人更喜欢在客户端使用 jQuery Validation 和在服务器上使用 FluentValidation。 jQuery 验证规则由 xVal 发出,基于 FluentValidation 规则。
  • 我目前使用的是 Web 表单,而不是 MVC,但对于我的下一个项目,我会喜欢使用 MVC 并看看。看起来 xVal 一年没有更新。它仍然是一个活跃的项目吗?
  • 不确定它的活跃程度。您必须联系开发人员。
猜你喜欢
  • 2011-02-22
  • 1970-01-01
  • 2013-02-18
  • 1970-01-01
  • 2015-04-21
  • 1970-01-01
  • 2011-02-22
  • 2011-05-05
相关资源
最近更新 更多