Sys.Webforms.PageRequestManagerParserErrorException:收到的消息 从服务器无法解析。导致此错误的常见原因是 通过调用Response.Write(),响应来修改响应时 过滤器,HttpModules或服务器跟踪已启用。详细信息:解析时出错 靠近'
您好我在updatepanel中保留了按钮,我收到此错误
答案 0 :(得分:1)
您不应在事件处理程序中为按钮使用Response.Write。实际上你根本不应该使用Response.Write(),除非你手动处理所有的响应生成(然后你也可以使用ashx而不是aspx)。
一种解决方法是在您希望显示文本的页面上放置文字控件,并在按钮单击事件中设置文字的值。
答案 1 :(得分:0)
updatePanel是ajax的一种自动方式,不能与Response.Write()一起使用,因为需要在内存上呈现要发送的内容,而不是从页面传递。 Respose.Write()直接将输出发送到客户端,就像直接输出到客户端页面,但没有这个页面。因此updatePanel上的Respose.Write()会抛出异常。
将Respose.Write()替换为可能的文字,并在文字内放置您想要显示的输出。
答案 2 :(得分:0)
更通用的原因是某些防火墙/浏览器插件可以剥离与AJAX相关的HTTP标头值X-MicrosoftAJAX,从而破坏了正常的页面渲染周期。
详细解释可在Telerik博客Blog post on Telerik site中找到,但似乎由于公司重组他们失去了博客服务(希望暂时)。所以引用Bing缓存:
防火墙打破ASP.NET AJAX!这个是严肃的,可能会咬你 任何时候。
昨天肖恩在我们的论坛上发布了这个问题:他和他的用户 在请求基于ASP.NET AJAX的站点时遇到奇怪的错误, 是的,这意味着RadControls" Prometheus"基础的。 UpdatePanel控件启动的部分呈现请求失败 带着神秘的信息:
============== Sys.WebForms.PageRequestManagerParserErrorExeption:无法解析从服务器收到的消息。常见原因 对于此错误,是通过调用修改响应的时间 Response.Write(),响应过滤器,HttpModules或服务器跟踪是
启用。详细信息:解析附近的错误'当然,所有这些都没有任何Response.Write()的痕迹, HttpModule,代码中的响应过滤器或服务器端跟踪。该 恐怖,恐怖......
拥有成为团队成员的奢侈品 类似于ASP.NET AJAX的框架,我注意到有些东西正在制作中 ASP.NET AJAX呈现整个页面并将其返回给浏览器 即使服务器代码应该处理部分 渲染请求。请注意我的重点(粗体部分是开头的 一般的HTML文档):
============== Sys.WebForms.PageRequestManagerParserErrorExeption:无法解析从服务器收到的消息。常见原因 对于此错误,是通过调用修改响应的时间 Response.Write(),响应过滤器,HttpModules或服务器跟踪是 启用。详细信息:在*****'附近解析时出错
我相信Watchguard的家伙应该得到X-MicrosoftAjax标题 进入他们已知的标题列表非常快。在他们这样做之前,请 禁用该设置。我认为它们不是唯一的防火墙解决方案 可能有此问题的提供商。你是背后的吗? header-stripping防火墙?请在下面发表评论!我不是故意的 仅限企业解决方案 - 个人防火墙也可以做到这一点。 我们拥有的名单越大,保留某人的机会就越大 棘手的问题。
另一方面,防火墙是否有充分理由剥离您的防火墙 HTTP请求标头?我能想到的只是古老的系统管理员 原则"禁用用户不需要的所有内容,然后转到 提前并禁用更多。"