Asp.net

UpdatePanel 異常處理

  • June 8, 2018

在我正在建構的 ASP.NET Web 應用程序中實現的 UpdatePanel 中發生異常時,它們會導致頁面上出現 JavaScript 錯誤,並在警報中提供一些高級錯誤輸出。這對於開發來說是可以的,但是一旦系統投入生產,由於多種原因顯然沒有好處。我可以用 Try Catch 等來控制麻煩的活動來控制 Javascript 錯誤,但在某些情況下,我想在首頁等上採取行動來支持使用者體驗。

如何優雅地處理 UpdatePanels 中發生的錯誤以提供無縫且無 Javascript 錯誤的實現?

在使用 UpdatePanel 時,您可以結合使用 ScriptManager(伺服器端)上的 AsyncPostBackError 事件和 PageRequestManager(客戶端)上的 EndRequest 事件來完全處理伺服器端錯誤。

以下是一些可以幫助您的資源:

自定義 ASP.NET UpdatePanel 控制項的錯誤處理

ASP.NET UpdatePanel 的錯誤處理自定義

這是一個簡單的例子:

// Server-side
protected void ScriptManager1_AsyncPostBackError(object sender, 
   AsyncPostBackErrorEventArgs e)  {
   ScriptManager1.AsyncPostBackErrorMessage =
       "An error occurred during the request: " +
       e.Exception.Message; 
}


// Client-side
<script type="text/javascript">
 function pageLoad()  {
   Sys.WebForms.PageRequestManager.getInstance().
       add_endRequest(onEndRequest);  
 }

 function onEndRequest(sender, args)  {
   var lbl = document.getElementById("Label1");
   lbl.innerHTML = args.get_error().message;
   args.set_errorHandled(true);
 }
</script>

引用自:https://stackoverflow.com/questions/1826008