运行我的网络应用程序时出现错误。当在实时服务器上至少出现javascript错误而没有别的错误时,该错误不会导致编译错误。但真正的问题是“调试”... javascript错误会停止编译,我必须“继续”三次才能正常进行调试。但每次刷新页面时都会发生此错误。所有这些都使用Visual Studio。
在google上搜索了几个小时之后,我发现这是ScriptManager和Ajax的一个问题。真正的问题是我不在此页面上使用任何Ajax,但ScriptManager位于母版页上。更糟糕的是,在网站上的任何其他页面,可能使用或不使用Ajax,没有javascript错误!只有这个页面导致此错误!有什么建议吗?
请注意,我通常会说法语,所以可能会有错误并抱歉!
修改
有3个地方是编译停止。
1. Sys.WebForms.PageRequestManager._initialize('ctl00$ctl08', document.getElementById('aspnetForm'));
2. Sys.WebForms.PageRequestManager.getInstance()._updateControls([], [], [], 90);
3. Sys.Application.initialize();
答案 0 :(得分:4)
确保在您的网页上包含asp.net-ajax脚本管理器控件。
<强>更新强>
来自评论:
但是一个不使用Ajax或与scriptmanager相关的任何页面都会导致此错误。
错误。 scriptmanager控件会在渲染的html页面中包含一堆javascript(<link ..>
- ed)。如果没有该scriptmanager控件,此javascript将无法使用。在链接的javascript中,您的错误是抱怨的Sys
对象。只有 的方式导致Sys is undefined
错误,如果您的页面有javascript,以某种方式尝试使用Sys
对象(可能通过第三方控件?) 。所以我保证,你 使用“Ajax或[相关的东西]。”
但是,您说您在母版页上包含了一个scriptmanager,而且应该已经足够了。缺少这种情况的最常见原因是您的scriptmanager控件丢失或者您在javascript引擎导入之前执行了需要它的javascript。所以请再次检查并确保 1)有问题的页面不是“特殊”,因为它不使用母版页,而 2)表示您在导入asp.net ajax脚本之前没有运行javascript。
答案 1 :(得分:1)
这不是你问题的答案,而是对未来的更多建议。我认为乔尔在回答这个问题方面做得很好。
为了您的理智,摆脱那个Microsoft AJAX。这是废话&amp;无论如何,这不是真正的AJAX,因为无论如何你都要发回整个页面。它只是异步。
那些毫无意义的&amp;不必要的“系统未定义”错误是我放弃Microsoft AJAX的原因之一。
转到jQuery&amp; MVC。它使开发再次变得有趣。