ajax json调用抛出ClientScriptManager.RegisterForEventValidation错误;如何注册?

时间:2016-10-05 18:09:39

标签: javascript c# jquery json ajax

我一直在研究这个疯狂,但我找不到从触发中获取此错误的方法。我希望有人可以帮助我。

我的页面上有一个下拉列表对象,我正在创建一个服务器控件,但我在运行时完全处理客户端。我之所以使用服务器控件,是因为我需要它来触发我页面上其他位置的AJAX更新面板。无论如何,这个下拉列表开始是空白的,但是根据用户输入通过一些jquery代码填充选项。到目前为止,没有问题,但是当用户从此下拉列表中进行选择时,我会收到ClientScriptManager错误。从此下拉列表中选择将触发ajax json调用以从服务器获取数据。

我正在使用ClientScriptManager.RegisterClientScriptInclude注册所有客户端脚本文件(包括包含违规json调用的脚本文件)。使用RegisterforEventValidation注册下拉列表不起作用,因为下拉列表在加载时没有选项。

应用程序尽管如此,但错误是打败了我想要的一些增强功能,所以我需要让它休息。您可以在https://www.heritagecutter.com/MillingCalc/查看应用程序(并在浏览器的调试控制台中查看错误);您要查找的下拉列表是“系列”,它将在您在上面的材料组和材料类型中进行选择后变为活动状态。选择系列后会出现错误。

提前感谢任何指导。

1 个答案:

答案 0 :(得分:0)

找到一个解决方案,适合任何可能在遥远的未来偶然发现的人:

所以我的代码的情况是我主要使用HTML对象,ASP.NET服务器控件用于我处理服务器的那几个实例,即使这些服务器控件在运行时触发客户端代码。我这样做是因为我是无聊的。

我已经在使用客户端AJAX调用来联系服务器获取我的数据,所以我清除了聪明的clogs服务器控件(我的违规下拉列表和toto中的Ajax UpdatePanel)并用HTML对象替换它们。我保留了包含我的代码的.aspx页面,因为我需要代码隐藏来存储客户端脚本调用的Web方法,我只留下我的web方法和ajax代码,因为不需要改变了,第一次尝试时错误就消失了。

我有些尴尬地离开了,但更聪明。