Cette chose me rend fou. J'essaie d'intercepter une exception côté serveur, lors d'une publication partielle, en définissant un message d'erreur à afficher sur le client dans une alerte javascript.Gérer les messages d'erreur Asynch avec ScriptManager
Mais je viens de recevoir l'erreur suivante sur la console Firefox:
uncaught exception: [Exception... "'Sys.WebForms.PageRequestManagerServerErrorException: Sys.WebForms.PageRequestManagerServerErrorException: Tentativo di divisione per zero.' when calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)" location: "JS frame :: resource://firebug_rjs/net/spy.js :: callPageHandler :: line 796" data: no]
et aucune alerte du tout.
J'ai eu ce problème sur un projet complexe impliquant des composants Telerik, mais j'ai réduit le problème à ses fondamentaux, following this simple example, et le problème existe toujours.
Le cas:
Default.aspx
<form id="form1" runat="server">
<asp:ScriptManager ID="scriptManager" runat="server" OnAsyncPostBackError="scriptManager_OnAsyncPostBackError"></asp:ScriptManager>
<div>
<asp:UpdatePanel ID="upd" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="btnSend" runat="server" Text="Send" OnClick="btnSend_OnClick" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
Default.aspx.cs
protected void scriptManager_OnAsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
{
scriptManager.AsyncPostBackErrorMessage = e.Exception.Message;
}
protected void btnSend_OnClick(object sender, EventArgs e)
{
// this will throw and Exception
int aa = Convert.ToInt32(TextBox1.Text)/Convert.ToInt32(TextBox2.Text);
}
J'ai essayé avec VS2010/.NET 4.0 et VS2008 /.NET 3.5, dans Firefox et Internet Explorer, le problème est le même.
S'il vous plaît, quelqu'un a une idée?
Parfait! Ça marche! J'ai complètement raté ce passage. – tanathos