.NET 4上的ASP.NET导致IE11抛出_doPostBack是未定义的javascript错误

时间:2013-11-05 07:33:49

标签: javascript asp.net .net postback internet-explorer-11

编辑:该站点位于Windows Server 2003上,因此无法升级到.NET framework 4.5。

我们的网站正在为ASP.NET ON .NET 4提供服务。当使用IE 11时,自动回发停止使用错误“_doPostBack is undefined”。很可能通过对浏览器定义文件的一些修改来修复,我还不知道如何。

Microsoft建议使用功能检测(首选)或更改浏览器定义文件。 http://msdn.microsoft.com/en-us/library/IE/hh869299%28v=vs.85%29.aspx

看起来功能检测意味着一起丢弃自动回发。这不就像重写整个网站一样吗?

有人可以描述如何完成功能检测和浏览器定义文件修改吗?哪种方式是首选的,为什么。

接受的答案解决了这个问题,看起来这是唯一的方法,如果你被卡在服务器2003上。如果有人能解释如何在没有大量代码更改的情况下完成功能检测,真的很不错。

4 个答案:

答案 0 :(得分:6)

似乎Windows Server 2003需要服务器范围的解决方案,并且所有修补程序都不起作用,因此必须手动完成。

  1. 编辑C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ Browsers并在此回答中添加浏览器定义https://stackoverflow.com/a/19203518/1297563
  2. 运行c:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regbrowsers.exe -i
  3. 重新启动IIS

答案 1 :(得分:3)

将.NET Framework升级到4.5

安装完成后,运行命令:

aspnet_regbrowsers -i

答案 2 :(得分:2)

@FrogCoder

我昨天遇到了这个问题 - 补丁2836939解决了我的问题。 Windows 8.1 IE11。

请从修补程序网址中考虑以下内容:

“注意如果在安装更新后运行ASP.NET浏览器注册工具(Aspnet_regbrowsers.exe),则旧的行为将返回。”

http://support.microsoft.com/kb/2836939

希望这有帮助。

答案 3 :(得分:1)

将以下脚本放在母版页中将修复它。我有一个类似的问题并得到修复。

<script runat="server">

protected override void OnInit(EventArgs e)
{
Page.ClientTarget = "uplevel";
base.OnInit(e);

}
</script>