Эта вещь сводит меня с ума. Я пытаюсь перехватить исключительную ситуацию на стороне сервера во время частичной обратной передачи, установив сообщение об ошибке, которое будет отображаться на клиенте в предупреждении JavaScript.
Но я просто получаю следующую ошибку на консоли 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]
и вообще никаких предупреждений.
Я столкнулся с этой проблемой в сложном проекте, который включает компоненты Telerik, но я сократил проблему до ее основ, , следуя этому простому примеру , и проблема все еще существует.
Дело:
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);
}
Я пробовал с VS2010 / .NET 4.0 и с VS2008 / .NET 3.5, в Firefox и Internet Explorer, проблема та же.
Пожалуйста, у кого-нибудь есть идеи?