林子之大.net笔记

本站多数文章由其它网址转载,没啥技术含量的皆为原创。主要目的是对付记性不好,方便查询。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

最近在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. 禁止这个功能, 但同时会失去一些安全保障:

posted on 2008-12-13 09:38  林614  阅读(380)  评论(0编辑  收藏  举报