【问题标题】:Best way to do client/server validation in ASP.NET in 2010?2010 年在 ASP.NET 中进行客户端/服务器验证的最佳方式?
【发布时间】:2010-06-08 14:16:46
【问题描述】:

首先是 ASP.NET 验证器,我们使用它们...然后团队中的一些人在 javascript 中手动执行操作...然后出现了一堆 jquery 验证库...然后 MVC2 出现了属性作为验证者..

我使用的应用程序有很多表单和很多不同的验证(一些字段需要与数据库中的其他值进行比较,因此需要 postball/ajax 调用).. 现在我的 ASP 很乱。 NET 自定义验证器和在服务器端计算的函数。

我能否就完成这项可以创建最小/最优雅代码的工作的最佳工具/组合获得一些意见?纯服务器端解决方案? AJAX/Jquery? jquery的某个插件?

例如,我有 2 个日期..我想确保第一个日期小于第二个日期...是否有封装这个的 jquery 验证器?我的感觉是,如果我可以让 jquery 插件为我处理一半的基本验证,那可以将我的代码减半。

【问题讨论】:

  • 唯一的“一次写入并在服务器和客户端上验证”是否真的是 MVC2 数据注释?网络表单有类似的东西吗?
  • 或者可能没有客户端验证,只需使用注释 + 更新面板使其看起来像客户端。

标签: asp.net jquery validation


【解决方案1】:

DynamicData 用于 asp.net mvc 和动态数据。

在网络表单上,我只使用了 asp.net 验证器方法。这并不意味着要复制粘贴您可能拥有的所有自定义验证,即您根据需要添加自己的自定义验证器,并且仅在非常特殊的情况下您使用附加到页面上的方法+脚本的验证器。

根据您构建代码的方式,我希望能够利用一些围绕 DataAnnotations 的基础架构。我不能给出一个事实,你知道 asp.net 上的常见问题通常与实现细节有关,如果没有更好的选择,值得一试。

更新 1: v. 快速搜索给出了:http://blogs.microsoft.co.il/blogs/gilf/archive/2010/04/08/building-asp-net-validator-using-data-annotations.aspx,这是一个初步的部分 - 但显示了一种可以利用 Web 表单上的数据注释的方法(用于服务器端)。

更新 2: 另一个采用与上述相同的方法,但同时进行服务器端和客户端验证: http://geeks.ms/blogs/rcarreras/archive/2010/04/20/validando-asp-net-web-form-con-dataannotation-en-ambos-lado-cliente-y-servidor.aspx。同样是初级的,但肯定可以用作基于注释获得更完整的自动验证的基础。 注意:根据您使用的内容,您可以在适当的位置自动添加验证器,但我必须警告说,如果您之前没有使用过动态添加的验证器,要让它正常工作可能会很棘手 em>

【讨论】:

  • 也许最简单的方法是使用 dataAnnotations 用于服务器端和 jquery 用于客户端?客户端版本的数据注解看起来相当复杂
  • 是的,示例很简单,可以根据您可用的库进行调整。
【解决方案2】:

如果您使用的是 ASP.NET MVC,我建议全面使用 DataAnnotations 属性。必填字段和长度包含“简单”的字段,您可以编写自己的自定义验证器来比较两个字段和其他字段。 Phil Haack 是一位出色的 article,他讲述了 ASP.NET MVC 中的自定义验证器。

【讨论】:

  • 我们正在使用网络表单(尽管我希望有一天能使用 MVC,因为如果这些注释验证可以以干净的方式完成,我更喜欢它们)
【解决方案3】:

我通常使用 jquery RSV 插件http://plugins.jquery.com/project/RSV 来完成我的常规验证工作,并且我编写自己的 jquery 函数来进行更复杂的验证(需要 ajax 调用和其他东西) 我总是在服务器端重新验证。

【讨论】:

  • 谢谢。对于客户端情况来说,这似乎是一个好的开始
猜你喜欢
  • 2011-11-19
  • 2012-05-04
  • 2017-01-26
  • 2014-11-21
  • 1970-01-01
  • 2023-04-08
  • 2013-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多