2
這件事讓我瘋狂。我試圖攔截一個異常服務器端,在部分回發期間,設置一個錯誤消息,以顯示在客戶端的JavaScript警報。使用ScriptManager處理Asynch錯誤消息
但我只是收到火狐控制檯上出現以下錯誤:
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組件的複雜項目中遇到了這個問題,但我已將問題簡化爲其基本原理,following this simple example,並且問題仍然存在。
的情況:
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中,問題是一樣的。
請問,任何人有一些想法?
太棒了!有用!我完全錯過了這段經文。 – tanathos