2011-04-05 35 views
1

如何顯示可能發生在ajax的頁面上的完整的.net異常。我希望它顯示,如果頁面不使用ajax會。 這爲我的QA環境,我沒有選擇暫時禁用更新面板。另外我不想要JavaScript來處理它,因爲我們的QA測試人員想要看到通常的全面的asp.net異常。Asp.net Ajax錯誤處理,如何顯示完整的異常

+0

你有沒有嘗試ScriptManager.AsyncPostBackError事件:http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.asyncpostbackerror.aspx – gbs 2011-04-05 03:00:34

+0

是的,我看着那個。它只是將異常發送到客戶端,以便您可以捕獲它查看JavaScript。似乎沒有辦法做一個完整的頁面異常。 – MakkyNZ 2011-04-05 14:55:06

回答

2

在ajax調用之後,很可能沒有辦法在經典的黃色ASP.NET錯誤頁面上顯示異常。但是你可以通過AsyncPostBackErrorMessage發送所需的信息,然後通過一些JavaScript(和jQuery)取代aspx頁面的正文:

$(document).ready(function() { 
    var manager = Sys.WebForms.PageRequestManager.getInstance(); 
    manager.add_endRequest(EndRequestHandler); 
}); 

function EndRequestHandler(sender, args) { 
    if (args.get_error() != undefined) { 
     var errorMessage = args.get_error().message; 
     args.set_errorHandled(true); 
     $('body').replaceWith(errorMessage); 
    } 
} 

在ScriptManager.AsyncPostBackError你可以嘗試呈現一些HTML可能效仿死亡的黃色畫面。有一個靈感如何做到這一點:http://www.codeproject.com/KB/aspnet/ASPNETExceptionHandling.aspx