asp.net需要一些关于复杂表单和验证器的设计建议

时间:2014-01-25 10:44:06

标签: c# javascript asp.net validation

我们有一个用C#开发的asp.net Web表单。这个表单有大约100个字段,它是非常动态的形式。从某种意义上说,它是动态的,当你第一次开始时,你只看到大约20个字段,但是当你继续在表格中进行不同的选择时,会显示或隐藏包含字段的面板。几乎每个字段都在客户端使用.net验证器进行验证。 Javascript用于打开/关闭验证器,具体取决于它们所在的面板是否可见。

这个表格有一些错误,后面很难调试这个表单,因为almos每个字段至少有2个验证器 - require和/ regular experssion。选择时,某些字段也会执行自动后备。大多数情况下,用户无法提交表单,因为仍然启用了一个/多个验证程序,但是它们所附加的字段是不可见的,因此很难调试哪个验证程序导致问题。

所以这是我的设计问题。

  • 在这种情况下调试验证器的简单方法是什么?如何找到仍在使用的验证工具?
  • 我应该只重新编码表单而不是使用asp.net验证器 使用JavaScript进行验证,至少就是这样 调试有效者。
  • 任何设计考虑因素?由于这种形式是如此痛苦,我们不会 重新设计它,并以正确的方式做到这一点。

我在想如果我创建一个单独的JavaScript函数,每次单击或更改表单字段时调用该函数,将调用此JavaScript函数并检查所有100个表单字段。如果表单字段可见,则启用相应的验证器,否则禁用。

您如何看待这种方法?

提前感谢您的时间和建议。

1 个答案:

答案 0 :(得分:0)

从可用性的角度来看,我强烈建议尽可能缩短表单,并在表单页面中填写表单列表。用户需要偶尔暂停,并在中途保存工作。

有理由不对表单进行细分(例如,来自匿名用户的调查)。但是如果用户经过身份验证并被迫填写表格(根据法律或其他现实世界的限制),那么你应该有5种形式的20个字段左右。

一旦复杂性降低,您就可以更轻松地解决其他问题。

对于你的问题:

我建议使用ASP.NET验证器。他们被拒绝进入两个世界:可用性(反应性)的客户端和安全性的服务器端。如果没有ASP.NET验证器,您将很难获得相同的易用性和一致性。

正则表达式不应该在验证器中调试,而是在一个单独的时刻(单元测试或带有大量测试字符串的简单脚本)调试,然后在几乎没有测试的情况下插入。

关于autopostback:为什么?尽量避免使用它或使用AJAX。

你需要做很多工作,遵循这些建议,但要确信它们是值得的。特别是对于新项目。