我正在开发这个应用程序,它将成为我组织中的模板,但是我需要解决一个问题。我想在AjaxControlTookit的modalpop上显示错误,并且永远不要让它在带有stacktrace的浏览器上显示那个丑陋的黄色文本。
我应该在哪里拦截,我应该拦截什么才能使其发挥作用?
我是否可以使用在渲染之前发生的生命周期事件,但是在页面本身构建之后(因此发生了错误?)在该事件中,我是否已准备好页面控件?假设我有一个母版页并且modalpopup将在那里,我可以在母版页中进行这种一般的错误处理吗?
这是我需要使用global.asax吗? (我从来没有使用它,但是有这样的名字和它有的事件,我可以想象它的作用)
这甚至可行吗?我可以捕获每个异常,甚至是与我的页面相关的浏览器错误吗?
编辑:
我的问题不在于用户看到的内容,我不希望浏览器显示堆栈跟踪和黄色错误页面,从而破坏了用户迄今所做的任何事情。 我想创建一个漂亮和干净的用户体验,如果用户可以从导致异常的任何问题中恢复,我希望他们有选项,其中包括不破坏他们在回发之前的页面。这是可以理解的还是我无法更好地解释这一点?
答案 0 :(得分:0)
您可以使用javaScript轻松完成此操作:
window.onerror = function(msg, url, linenumber) {
alert('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber);
return true;
}
答案 1 :(得分:0)
一般来说,这里有一个关于如何在ASP.NET中处理错误(包括全局错误)的链接:
How to: Display Safe Error Messages
然后关于modalpopup,在链接中提到的示例中,用户被重定向到其他一些错误页面。您可以将错误消息传递到该错误页面,然后在该错误页面上显示modelpopup。