我正在使用ASP.NET ajax来动态添加/删除页面中的控件而不使用完整的回发。用户界面非常复杂。在某些情况下,当页面上的控件导致完全回发,通过异步回发改变控件后,我得到这个错误:什么时候可以禁用页面上的事件验证?
我可以通过设置EnableEventValidation =“假”修复它在页面级别。
这样做有什么含义?有没有时候可以做到这一点,或者这是一个黑客?
我正在使用ASP.NET ajax来动态添加/删除页面中的控件而不使用完整的回发。用户界面非常复杂。在某些情况下,当页面上的控件导致完全回发,通过异步回发改变控件后,我得到这个错误:什么时候可以禁用页面上的事件验证?
我可以通过设置EnableEventValidation =“假”修复它在页面级别。
这样做有什么含义?有没有时候可以做到这一点,或者这是一个黑客?
如果您有一个所见即所得的输入文本框或期望HTML的文本框,那么您必须禁用验证或执行一些JavaScript hack。
问题是你需要提供彻底的验证来防止XSS等。
它可能不会直接回答你的问题,还是显得有关...
但是,如果你的用户界面非常复杂,有可能出错了吧。 KISS之后是一个好主意,原因很明显。
如果你的用户界面很复杂,那么你可能不了解它,所以你会得到更多的问题,其中很多你可能永远都不会注意到。您的问题和错误不容易追查或弄清楚,并且可能会模糊并从问题的实际原因中删除。其次,如果它对你来说很复杂,并且你写了它,那么任何人使用它都可能是不可理解的。即使你只是在管理代码,复杂性可能反映在演示文稿中。
我建议你看看重新设计用户界面,使其不那么复杂。无论如何,再看一遍它总是会更好,在第三次或第四次尝试解决问题之前,通常不会有很好的解决方案。
我肯定会说这是一个黑客攻击。
就减少代码复杂性而言,您是否尝试过从某些控件继承并将大量代码放在它们后面?这绝对听起来像是一个重构的案例!
它在他们的数据库教程中特别说到,目前您必须禁用EventValidation。这是一个错误。 http://www.asp.net/AJAX/AjaxControlToolkit/Samples/Walkthrough/CCDWithDB.aspx
这篇文章有一种内在的傲慢。业务问题很可能需要一个复杂的用户界面,而不是用于一般的易用性,所以不是讲座,而是解决被问到的问题。 – 2012-06-11 18:04:38