IE 10/11上未定义Sys.WebForms

时间:2015-02-23 18:55:58

标签: javascript asp.net webforms sys

我最近继承了一个ASP.NET网站,该网站可以在我们测试的每个浏览器中运行,除了IE 10/11(在9和之前的版本中工作正常)。在打开控制台的情况下刷新页面时,似乎在IE中未定义Sys.WebForms而在其他浏览器中未定义。在兼容模式下运行并不能解决这个问题。

这是网站的布局。

主文件

<head>
    <script type="text/javascript" src="<%# Page.ResolveClientUrl("~/Scripts/Scripts.js") %>"></script>
</head>
...
<body>
    ...
    <form id="Tabs_Form" runat="server">
        <asp:ScriptManager ID="Scriptmanager1" runat="server" EnablePartialRendering="true" EnablePageMethods="true" ScriptMode="Release"></asp:ScriptManager>
        <script type="text/javascript">
            function SetUpPageHandlers() {
                PageRequest = Sys.WebForms.PageRequestManager.getInstance();
                PageRequest.add_initializeRequest(InitializeRequestHandler);
                PageRequest.add_beginRequest(BeginRequestHandler);
                PageRequest.add_endRequest(EndRequestHandler);
                PageRequest.add_pageLoaded(PageLoadHandler);
            }
        ...

scripts.js中

$(document).ready(function () {
    ...
    SetUpPageHandlers();
});

在IE 11中检查控制台中的Sys变量时,它只有以下成员。

__namespace
__rootNamespaces
__typeName
__upperCaseTypes
_jsonp
Application
Browser
Debug
Net
Res
Serialization
UI

在其他浏览器中,它包含更多成员。有没有人有任何想法导致这在IE 10/11中起作用?

1 个答案:

答案 0 :(得分:1)

您可能正在运行没有最新浏览器定义文件的ASP.NET版本。

下载此zip file并解压缩.browser文件。然后将浏览器文件放在应用程序根目录中的app_browsers文件夹中。重新启动您的应用池。

如果上述修复工作正常,请考虑在服务器上安装最新的浏览器定义文件,或者更好的是,考虑安装ASP.NET 4.5 +。

blog post很好地解释了这个问题。