I've always used the following two bits of code (which use to work) to catch Ajax asyncPostBackErrors.
<asp:ScriptManager ID="ScriptManager1" runat="server" OnAsyncPostBackError="ScriptManager1_AsyncPostBackError" />
and
protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
{
ScriptManager1.AsyncPostBackErrorMessage = e.Exception.Message;
}
But now even though the unhandled exception has been caught in this event handler function and the AsyncPostBackErrorMessage been set with the Exception message, I'm always getting the same error reporting in the page in a alert box no matter what the exception message was, saying:
Error: Sys.WebForms.PageRequestManagerParserErrorException: The message recieved from the server could not be parsed. Common causes for this error are when the response is modified by calls to the Respnse.Write() ....
The error is the same error you would get if you had an unhandled asyncPostBack exception and you didn't wire up the Scriptmanger's asyncPostBackError event handler method.
No matter what I do I get the same error. What would be causing this?
It seems i'm facing the same problem after upgrading from VS 2005 to VS 2008. I use this code:
in order to handle the exception and display a proper error message. The
AsyncPostBackErrorMessageis assigned properly but at client side when the following is executed in JavaScript:The
ErrorPopUpDivIDis not what i had asigned toAsyncPostBackErrorMessage. It used to work for me too. I'll try to figure out if it might be a .NET 3.5 issue.Finally the following 3 lines of JavaScript solved my problem: