1.回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/ > 或在页面中使用 <%@ Page
EnableEventValidation="true" % >
启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用
ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
----------处理方法:
目前为止遇到出现问题的情况有两种:
一是Form嵌套,一个页面只能有一个Form,仔细检查代码就可以解决。
二是在下拉菜单中使用ajax,常见于省市联动菜单,可能是由于在aspx页面赋给了下拉菜单初始Item值,在事件回发时提示该错误,将下拉菜单初始Item值删除,在绑定事件中添加Item项。还有就是iframe中指定了初始的src值。
三是 DropDownList 控件的ListItem 的Value 属性 包含汉字.只要将Value 改为英文或数字的就行了.
四是把 EnableEventValidation
属性设置为false;但是这样只是没有警告框而已.数据仍然无法传递给服务器,导致SelectedIndex 值一直为零.
最好办法是在web.config中添加如下语句:
<globalization requestEncoding="utf-8" responseEncoding="utf-8"
culture="zh-CN" uiCulture="zh-CN"/>
2.未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
----------处理方法
如果注释掉 Response.Write(str) , 是不是就没有这个报错了,要是这样的话要注意
如果你用的是微软的ajax框架,弹出提示框应该用:
ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "updateScript", "alert('对不起,账号和密码错误');", true);
3.Sys.WebForms.PageRequestManagerParserErrorException 错误
最近在使用ajax的时候经常出现下面的问题:
Sys.WebForms.PageRequestManagerParserErrorException:The message received from the server
count not be parsed.Common causes for this error are when the response is modified by calls to response.Write(),response filters,HttpModules,or server trace is enabled.
Details:Error parsing near '|<html>
<head>
----解决方法
<Triggers>
Ajax是无刷新的,而使用Response进行带参重定向或者进行页面输出时需要刷新页面。所以只须在UpdatePanel下设置“asp:PostBackTrigger”的“ControlID”为指定的控件名称即可
<Triggers>
<asp:PostBackTrigger ControlID="btnSave" />
</Triggers>
本文作者:网友 来源:CIOZJ
CIO之家 www.ciozj.com 微信公众号:imciow