ajax json调用抛出ClientScriptManager.RegisterForEventValidation错
本文关键字:ClientScriptManager RegisterForEventValidation json 调用 ajax | 更新日期: 2023-09-27 18:11:36
我一直在疯狂地研究这个问题,但我找不到一种方法来触发这个错误。我希望这里有人能帮助我。
我在我的页面上有一个下拉列表对象,我正在创建一个服务器控件,但我在运行时完全处理客户端。我之所以使用服务器控件,是因为我需要它来触发页面上其他地方的AJAX更新面板。无论如何,这个下拉列表开始是空白的,但是根据用户输入,一些jquery代码会填充选项。到目前为止还没有问题,但是当用户从这个下拉菜单中进行选择时,我得到了ClientScriptManager错误。从这个下拉菜单中选择将触发ajax json调用,从服务器获取数据。
我注册所有的客户端脚本文件(包括一个包含违规json调用)与ClientScriptManager.RegisterClientScriptInclude。使用RegisterforEventValidation注册下拉框本身不起作用,因为下拉框在加载时没有选项。
尽管如此,应用程序仍然可以工作,但是这个错误挫败了我想要做的一些增强,所以我需要把它放在一边。您可以在https://www.heritagecutter.com/MillingCalc/上查看应用程序(并在浏览器的调试控制台中查看错误);你要找的下拉框是一个标题为"系列"的,在你选择上面的材质组和材质类型后,它就会激活。选择序列后出现错误。
提前感谢您的指导。
找到了一个解决方案,为那些可能在遥远的将来偶然发现这个问题的人:
所以我的代码的情况是,我主要使用HTML对象,与ASP。. NET服务器控件用于我处理服务器的那些少数实例,即使这些服务器控件在运行时触发客户端代码。我这样做是因为我是菜鸟。
我已经使用客户端AJAX调用来联系服务器以获取数据,因此我清除了智能阻塞服务器控件(我的违规下拉列表和AJAX UpdatePanel),并用HTML对象替换它们。我保留了包含我的代码的.aspx页面,因为我需要代码存储被客户端脚本调用的web方法,我把我的web方法和ajax代码单独留下,因为不需要更改,错误在第一次尝试时就消失了。
我有点尴尬地走开了,但也因此更明智了。