使用<CustomErrors mode ="On"/>在UpdatePanel中处理错误

Xav*_*nas 6 c# asp.net updatepanel

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

<customErrors mode="On" defaultRedirect="~/ErrorPage.aspx" />
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

rsb*_*rro 4

处理此问题的一种方法是将事件连接到控件OnAsyncPostBackErrorScriptManager

<asp:ScriptManager ID="ScriptManager1" runat="server" 
    AllowCustomErrorsRedirect="False"
    OnAsyncPostBackError="ScriptManager1_AsyncPostBackError" />
Run Code Online (Sandbox Code Playgroud)

MSDN 上的此页面有一个使用此方法处理异步回发错误的完整示例。

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