我正在使用ASP.NET ajax在不使用完整回发的情况下动态添加/删除页面中的控件。用户界面非常复杂。在某些情况下,当页面上的控件导致完整回发时,在通过异步回发更改控件后,我收到此错误:
我可以通过在页面级别设置EnableEventValidation =“false”来修复它。
这样做有什么意义?是否可以这样做或者这是一个黑客攻击?
答案 0 :(得分:4)
如果你有一个WYSIWYG输入文本框或一个期望HTML的文本框,那么你必须禁用验证或做一些JavaScript黑客攻击。
问题在于您需要提供彻底的验证以防止XSS等。
答案 1 :(得分:1)
我肯定会说这是一个黑客攻击。
至于降低代码复杂性,您是否尝试从某些控件继承并将大量代码置于其后?这听起来像是一个重构的案例!
答案 2 :(得分:1)
它在数据库教程中特别指出,目前您必须禁用EventValidation。这是一个错误。 http://www.asp.net/AJAX/AjaxControlToolkit/Samples/Walkthrough/CCDWithDB.aspx
答案 3 :(得分:0)
它可能无法直接回答您的问题,或似乎相关......
但是,如果您的用户界面非常复杂,可能会出现问题。由于显而易见的原因,关注KISS是一个好主意。
如果您的用户界面很复杂,那么您可能无法理解它,因此您会遇到更多问题,您可能从未注意到这些问题。您的问题和错误不容易追查或弄清楚,并且可能会模糊不清并从问题的实际原因中删除。
其次,如果它对你来说很复杂,并且你写了它,对任何使用它的人来说都可能是不可理解的。即使您只是意味着管理代码,复杂性也可能反映在演示文稿中。
我建议你看一下重新设计用户界面,这样就不那么复杂了。如果你再看一遍它总会更好,在第3次或第4次尝试解决问题之前通常不会有一个好的解决方案。