我在www.cougarsbaseballsoftball.com上有一个新升级的应用程序,可以在PC上的IE和Chrome上正常运行但在iOS8设备上的Safari和Chrome上失败。在页面加载时,它无法生成消息“具有ID upnlMessage的控件(更新面板)需要页面上的ScriptManager。 ScriptManager必须出现在任何需要它的控件之前。“
scriptmanager是一个通过AJAX控件工具包提供的版本,位于masterpage中: 所有的脚本引用都在这里......
</ajaxToolkit:ToolkitScriptManager>
我从相关帖子尝试了以下解决方案,但没有找到可行的解决方案:
1.创建一个App_Browser文件来处理来自iPad的请求:iPad 6_0_1 ScriptManager.SupportsPartialRendering ASP.Net。这并未纠正iOS inter-op问题,但对PC上的浏览器没有任何影响。这一变化已经回滚。 2.创建一个App_Browser文件来处理Safari浏览器的请求(可能是跨平台):iOS 8 / Safari 8 not working with ASP.NET AJAX-Extensions。这并未纠正iOS inter-op问题。它导致PC浏览器上的应用程序失败。这一变化已经回滚。 3.将EnablePartialRendering和LoadScritsBeforeUI属性添加到ToolkitScriptManager声明(参见上文) - The ScriptManager must appear before any controls that need it - Chris Bint指向底部附近。此更改保留在应用程序中。
该网站在GoDaddy Ultimate网站上运行,信任级别为已满。虽然该站点在框架4.5.1上运行,但问题可以在4.5.0上复制。由于Ajax Control Toolkit的相互依赖性问题,我没有尝试恢复到4.0。
答案 0 :(得分:3)
检查解决方案中是否有Site.Mobile.master
和ViewSwitcher.ascx
。
我遇到了这个问题并发现当尝试在移动设备上查看应用程序时,它实际上是切换到没有脚本管理器的移动主机。我正在使用响应式网页设计,并决定排除移动主机和ViewSwitcher,这解决了我的问题。
希望这对你也有用。
新年快乐。
答案 1 :(得分:1)
是的,我的错误。第一个响应式应用程序,所以我没有考虑Site.Mobile.Master。我通过传递它在onLoad()事件中的使用来放入重定向代码;但是,我仍然需要将Ajax Control Toolkit脚本管理器放在Site.Mobile.Master页面中以避免错误。
感谢您的帮助!