在我正在构建的ASP.NET Web应用程序中实现的UpdatePanels中出现异常,它们在页面上导致
JavaScript错误,并在警报中提供一些高级错误输出.这是发展的好处,但一旦系统在生产中,显然没有好处有多个原因.我可以通过Try Catch等来围绕麻烦的活动来控制Javascript错误,但在某些情况下,我想在主页面等上执行操作以支持用户体验.
解决方法
您可以使用ScriptManager(服务器端)上的AsyncPostBackError事件和PageRequestManager(客户端)上的EndRequest事件的组合,以便在使用UpdatePanel时完全处理服务器端错误.
这里有一些资源可以帮助您:
Customizing Error Handling for ASP.NET UpdatePanel Controls
Error Handling Customization for 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>