2008-12-08 70 views
2

我正在使用ASP.NET ajax来动态添加/删除页面中的控件而不使用完整的回发。用户界面非常复杂。在某些情况下,当页面上的控件导致完全回发,通过异步回发改变控件后,我得到这个错误:什么时候可以禁用页面上的事件验证?

Invalid postback or callback argument. Event validation is enabled using '<pages enableEventValidation="true"/>'

我可以通过设置EnableEventValidation =“假”修复它在页面级别。

这样做有什么含义?有没有时候可以做到这一点,或者这是一个黑客?

回答

4

如果您有一个所见即所得的输入文本框或期望HTML的文本框,那么您必须禁用验证或执行一些JavaScript hack。

问题是你需要提供彻底的验证来防止XSS等。

0

它可能不会直接回答你的问题,还是显得有关...

但是,如果你的用户界面非常复杂,有可能出错了吧。 KISS之后是一个好主意,原因很明显。

如果你的用户界面很复杂,那么你可能不了解它,所以你会得到更多的问题,其中很多你可能永远都不会注意到。您的问题和错误不容易追查或弄清楚,并且可能会模糊并从问题的实际原因中删除。其次,如果它对你来说很复杂,并且你写了它,那么任何人使用它都可能是不可理解的。即使你只是在管理代码,复杂性可能反映在演示文稿中。

我建议你看看重新设计用户界面,使其不那么复杂。无论如何,再看一遍它总是会更好,在第三次或第四次尝试解决问题之前,通常不会有很好的解决方案。

+1

这篇文章有一种内在的傲慢。业务问题很可能需要一个复杂的用户界面,而不是用于一般的易用性,所以不是讲座,而是解决被问到的问题。 – 2012-06-11 18:04:38

1

我肯定会说这是一个黑客攻击。

就减少代码复杂性而言,您是否尝试过从某些控件继承并将大量代码放在它们后面?这绝对听起来像是一个重构的案例!

相关问题