Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net需要一些关于复杂表单和验证器的设计建议_C#_Javascript_Asp.net_Validation - Fatal编程技术网

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

C# asp.net需要一些关于复杂表单和验证器的设计建议,c#,javascript,asp.net,validation,C#,Javascript,Asp.net,Validation,我们有一个用C#开发的asp.net web表单。这个表单有大约100个字段,它是一个非常动态的表单。从某种意义上说,它是动态的,当你第一次开始时,你只看到大约20个字段,但当你继续在表单中进行不同的选择时,包含字段的面板会显示或隐藏。几乎每个字段都在客户端使用.net验证程序进行验证。Javascript用于打开/关闭验证器,具体取决于它们所在的面板是否可见 此表单有一些bug,调试此表单很麻烦,因为almos每个字段至少有2个验证器-require和/或regular expersion。选

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

此表单有一些bug,调试此表单很麻烦,因为almos每个字段至少有2个验证器-require和/或regular expersion。选中时,某些字段也会自动回发。大多数情况下,用户无法提交表单,因为一个或多个验证程序仍处于启用状态,但它们附加到的字段不可见,因此很难调试是哪个验证程序导致了问题

这里是我的设计问题

  • 在这种情况下,调试验证器最简单的方法是什么?如何找到哪些validtors仍处于启用状态
  • 我是否应该重新编码表单并 使用JavaScript进行验证,至少这样会更有效
    调试验证程序
  • 有什么设计考虑吗?因为这种形式是如此痛苦,我们不会 请注意重新设计,并以正确的方式进行
我在想,如果我创建一个JavaScript函数,每次单击或更改表单字段时都会调用它,那么这个JavaScript函数将被调用,它将检查所有100个表单字段。如果表单字段可见,则启用相应的验证器,否则禁用

你觉得这个方法怎么样


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

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

不细分表单是有原因的(例如,来自匿名用户的调查)。但是,如果用户经过身份验证并被迫填写表单(章程或其他现实世界的约束),那么实际上应该有5个表单,包含20个字段左右

一旦复杂性降低,您就可以更轻松地处理这些其他问题

关于您的问题:

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

正则表达式不应该在验证器中调试,而应该在单独的时刻(单元测试或一个包含大量测试字符串的简单脚本)进行调试,然后再进行少量测试

关于自动回邮:为什么?尽量避免使用AJAX


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

一个包含100个字段的表单听起来有问题。也许可以尝试将一些字段移动到另一个表单。你考虑过使用向导控件吗?当重新阅读你的问题时,我想知道为什么人们的生活如此复杂,而保持事物整洁和干净更容易,回报也更好。