IE10,11下_doPostBack未定义错误的解决方法
出现的原因
.NET2.0和.NET4.0一起发布的浏览器定义文件中有一个错误,它们保存相当一部分浏览器版本的定义。但是浏览器的有些版本(比如IE10,11)则不再在这个范围之内。因此,ASP.NET把它们看做是未知的浏览器,默认降级处理,这样就会给用户带来不便,比如不支持JavaScript特性。而ASP.NET的服务器控件asp:LinkButton的渲染机制使得错误发生。
服务器控件:
<asp:LinkButton ID="Logout" runat="server" OnClick="Logout_Click">注销</asp:LinkButton>
渲染后的HTML代码:
<a id="Logout" href="javascript:__doPostBack('Logout','')">注销</a>
再看看自动生成的js代码:
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
可以看到,LinkButton依赖js方法_doPostBack来提交表单,从而执行服务器方法。而由于浏览器无法识别,导致其不能正确生成_doPostBack,于是浏览器的js解释器会向用户报出_doPostBack未定义错误。
解决方案
治标:安装NuGet App_BrowsersUpdate包。帮.NET Framework认识新型浏览器。仅对本网站的网页有效。
治本:在你的服务器上安装补丁。2600088 For .NET4.0 或 2600100 For .NET2.0
当客户端为Windows7时,IE10和IE11一般就不会出现这种错误了。不过当客户端OS为Windows8时,IE11下情况仍然存在。
这时,尝试在服务器上安装.NET Framework4.5来解决此问题。
然而,.NET Framework4.5并不支持OS Windows Server 2003,所以,如果你的网站正在建设中,建议弃用LinkButton控件。
(完)
IE10,11下_doPostBack未定义错误的解决方法的更多相关文章
- Admob(6.12.x)符号未定义错误的解决方法(IOS)
在升级Admob的SDK版本到6.12.x时, 按照官方文档操作(https://developers.google.com/mobile-ads-sdk/docs/#ios), 添加如下framew ...
- ASP.Net IE10 _doPostBack 未定义错误【转】
--昨天发现IE10下面ReportViewer执行报表会报错,发现为Js报_doPostBack 未定义错误,查找相关资料发现问题为 当前framework不能识别IE10版本,把该浏览器做降级处理 ...
- 从 ie10浏览器下Symbol 未定义的问题 探索vue项目如何兼容ie低版本浏览器(ie9, ie10, ie 11 )
问题: vue项目在ie11下一片空白并报Symbol 未定义的错 原因: ie10浏览器解析不了es6的语法,需要我们使用babel(Babel是一种工具链,主要用于将ECMAScr ...
- 编译lua5.3.2报错提示libreadline.so存在未定义的引用解决方法
从官网上下载5.3.2的源码后,make linux进行编译,提示报错: gcc -std=gnu99 -o lua lua.o liblua.a -lm -Wl,-E -ldl -lreadline ...
- Windows下一个MySQL有些错误的解决方法
1.无论是什么提示.我们有一个直接看错误日志.由于它描述了最具体描述错误日志. 于MySQL安装文件夹中找到 my.ini简介 看日志保存路径 2. 我的错误是[ERROR] Fatal error: ...
- GCC 高版本7.4 编译链接 boost 报错 boost::thread::XXX’未定义的引用 解决方法
背景:开发中的项目之前一直用GCC4.8,boost库1.48版本的开发环境.现在因业务需求,需要更换GCC7.4,boost库1.70. 问题:可以正常编译BOOST的链接库文件,但是链接时候报错. ...
- MinGW平台 openjpeg-2.1.0 静态编译后未定义引用的解决方法
undefined reference to __imp_opj_xxx keyword: ffmpeg,openjpeg,OPJ_EXPORTS,OPJ_STATIC,opj_version,__i ...
- Infragistics公司的UltraWebGrid控件在显示的时候报“theForm” 未定义错误的解决。
在项目中使用了Infragistics公司的UltraWebGrid控件,浏览器中报错,“theForm” 未定义,并且造成客户端js,滚动条,失效.最后查官网论坛找到问题.需要把web.config ...
- Linux下编译PHP常见错误及解决方法
1.configure: error: xml2-config not found. Please check your libxml2 installation.yum install libxml ...
随机推荐
- Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo
近期为了分析国内航空旅游业常见安全漏洞,想到了用大数据来分析,其实数据也不大,只是生产项目没有使用Hadoop,因此这里实际使用一次. 先看一下通过hadoop分析后的结果吧,最终通过hadoop分析 ...
- 【Hibernate框架】批量操作Batch总结
在我们做.net系统的时候,所做的最常见的批量操作就是批量导入.插入.更新.删除等等,以前我们怎么做呢?基本上有以下几种方式: 1.利用循环调用insert方法,一条条插入. public boole ...
- jq冒泡之——点击其他地方隐藏
e.stopPropagetion(); <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- ecplise + hadoop 调试环境搭建
1.需要安装包 1.1 hadoop源码包(hadoop-2.5.2-src.tar.gz) 1.2 hadoop 2X插件(hadoop2x-eclipse-plugin-master.zip) 1 ...
- 【Java 新建项目】使用程序对新项目的各个实体 创建Dao、DaoImpl、Service、ServiceImpl层的文件
首先给出基本Dao层代码: GenericDao.java package com.agen.dao; import java.io.Serializable; import java.util.Co ...
- 修改radio与check样式
一般的radio与check的样式很难看,这个时候就需要我们自己修改其样式 逻辑思维: 1.用label包裹input标签以及样式标签,然后将radio定位到界面以外,设置样式标签的样式 2.使用伪类 ...
- C#开发笔记
Dictionary 检查后获取值:Dictionary.TryGetValue() KeyValuePair<T, K> 的非泛型形式:DictionaryEntry List 由ILi ...
- View 与 Controller 之间的delegate(代理)传值
这个代理传值是经常使用的一种传值方式,下面介绍一种View 和 Controller 之间的代理传值方法. 先建立一个View视图 如 LoginView 是继承于一个UIView 在LoginVie ...
- Unity3d:UI面板管理整合进ToLua
本文基于 https://github.com/chiuan/TTUIFramework https://github.com/jarjin/LuaFramework_UGUI 进行的二次开发,Tha ...
- PC端一些非经典兼容性问题小札
IE10默认在input框中输入内容后会显示一个‘X’按钮,方便删除输入的所有内容. 在password输入框显示一个眼睛的按钮,去掉叉叉和眼睛的方法如下: ::-ms-clear { display ...