2010-05-27 59 views
0

我在AJAX面板中捕捉錯誤時遇到了問題。即使我在前端後面的c#代碼中拋出一個異常,也完全忽略它。瀏覽器不處理來自AJAX面板的異常,ASP.NET c#

這是我設置的代碼,任何人都可以看到爲什麼?

我非常希望在錯誤時顯示js警報窗口。

代碼背後:

protected void btnX_Click(object sender, EventArgs e) 
{ 
    throw new ApplicationException("test"); 
} 

protected void ScriptManager_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e) 
{ 
    ScriptManager.AsyncPostBackErrorMessage = e.Exception.Message; 
} 

標記:

<script type="text/javascript" language="javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 

    function EndRequestHandler(sender, e) 
    { 
     window.alert(e.get_error().name); 
    } 
</script> 

<asp:ScriptManager ID="ScriptManager" runat="server" AllowCustomErrorsRedirect="true" OnAsyncPostBackError="ScriptManager_AsyncPostBackError" /> 

回答

0

我想你應該顯示 '消息' 的錯誤性質,而不是 '名'

看到http://msdn.microsoft.com/en-us/library/bb383810.aspx

function EndRequestHandler(sender, e) 
{ 
    if (e.get_error() != undefined) 
    { 
    var errorMessage = e.get_error().message; 
    e.set_errorHandled(true); 
    alert(errorMessage) 
    } 
}