使用<customerrors mode =“On”> </customerrors>在UpdatePanel中处理错误

时间:2011-05-10 02:17:36

标签: c# asp.net updatepanel

我在web.config文件中启用了自定义错误:

<customErrors mode="On" defaultRedirect="~/ErrorPage.aspx" />

当UpdatePanel中的异步回发期间发生错误时,响应将作为代码200返回,内容将设置为错误页面。

当UpdatePanel尝试解析响应并抛出JavaScript异常时,这会中断:

  

Sys.WebForms.PageRequestManagerParserErrorException:   无法解析从服务器收到的消息。

有没有办法在客户端正确处理这个问题而不必禁用自定义错误,因为我不想透露任何异常细节?

1 个答案:

答案 0 :(得分:4)

处理此问题的一种方法是在OnAsyncPostBackError控件上连接ScriptManager事件:

<asp:ScriptManager ID="ScriptManager1" runat="server" 
    AllowCustomErrorsRedirect="False"
    OnAsyncPostBackError="ScriptManager1_AsyncPostBackError" />

这个page on MSDN有一个完整的例子,使用这个方法来处理异步回发错误。

修改
要解决自定义错误页面的问题,请务必将AllowCustomErrorsRedirect上的ScriptManager属性设置为false。一旦我将此属性设置为false,即使我在web.config中设置了CustomErrors mode =“On”,我也能够使MSDN示例正常工作。