PageRequestManagerParserErrorException错误

时间: 2008-05-30 / 分类: 学习心得 / 浏览次数: 3,362 / 0个评论 发表评论

最近在ASP.NET中使用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 ‘|

网上查了一下,发现有人提供了这么一个解决方案:

   
“我在用Response.Redirect()或Response.Write()进行URL带参数的页面重定向时出现如题所示的错误。Ajax是无刷新的,而使用Response进行带参重定向时需要刷新页面。所以只须在UpdatePanel下设置“asp:PostBackTrigger”的“ControlID”为指定的控件名称即可,如: 


按照上面所述的方法修改之后,发现确实不再提示这个错误,但是却无法满足我的要求。因为我用AJAX就是为了实现页面无刷新,而现在使用了
PostBackTrigger之后,页面肯定会刷新。后来继续寻找,终于看到有人作了一个这样的回答:

“设置页面属性EnableEventValidation=false 就可以了”。

试了一下果然成功了,而且完全满足要求。但是这个EnableEventValidation又是何方神圣呢?这样设置会产生什么样的问题吗?于是查了一下EnableEventValidation的解释,原来是.NET 2.0中出现的新家伙,怪不得遍寻网络找不到答案。看MSDN总是让人很头疼,所人看看别人是怎么说的吧。

———————————

添加了event validation的功能,ASP.NET会检查POST方法中的所带的参数,如果认为不合法,就会抛出异常。这个设计的目的是为了防止恶意用户利用post方法发送一些恶意数据,但是有时一些常见的case也会出错。

1. 禁止这个功能, 但同时会失去一些安全保障:
//—-通过web.config

//—-针对某个page

历史上的今天

2014年:安卓手机上手指南[译文218](36条评论)

2009年:《星际迷航(Star Trek 2009)》(0条评论)

2006年:明天就是端午节了,传统节日不能忘(0条评论)

2006年:剛回到宿舍,看看濟南的天氣(0条评论)

2006年:一口气读完了《达芬奇密码》(0条评论)

发表评论

您的昵称 *

您的邮箱 *

您的网站