我在 www.cougarsbaseballsoftball.com 上有一个新升级的应用程序,它在 PC 上的 IE 和 Chrome 上运行良好,但在 iOS8 设备上的 Safari 和 Chrome 上运行失败。页面加载时,它无法生成消息:“ID 为 upnlMessage 的控件(更新面板)需要页面上的 ScriptManager。 ScriptManager 必须出现在任何需要它的控件之前。”
脚本管理器是通过 AJAX 控制工具包提供的版本,位于母版页中: 所有脚本引用都在这里......
</ajaxToolkit:ToolkitScriptManager>
我已经尝试了相关帖子中的以下解决方案,但尚未找到可行的解决方案:
1.创建App_Browser文件来处理来自iPad的请求:iPad 6_0_1 ScriptManager.SupportsPartialRendering ASP.Net 。这并没有解决 iOS 互操作问题,但对 PC 上的浏览器没有造成影响。此更改已回滚。 2. 创建 App_Browser 文件来处理 Safari 浏览器的请求(大概是跨平台的):iOS 8 / Safari 8 not working with ASP.NET AJAX-Extensions 。这并没有解决 iOS 互操作问题。它导致 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。
最佳答案
检查您的解决方案中是否有 Site.Mobile.master
和 ViewSwitcher.ascx
。
我遇到了这个问题,发现当尝试在移动设备上查看应用程序时,它实际上切换到没有脚本管理器的移动主机。我正在使用响应式网页设计,并决定排除移动主机和 ViewSwitcher,这解决了我的问题。
希望这对您也有用。
新年快乐。
关于ajax - ASP4.5.1、Bootstrap、带 AJAX 控制工具包在 iOS 浏览器上引发 ScriptManager 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27698880/