如何阻止错误显示在网页上,而是弹出显示?

时间:2014-04-02 06:51:40

标签: c# asp.net .net ajaxcontroltoolkit modalpopupextender

我正在开发这个应用程序,它将成为我组织中的模板,但是我需要解决一个问题。我想在AjaxControlTookit的modalpop上显示错误,并且永远不要让它在带有stacktrace的浏览器上显示那个丑陋的黄色文本。

我应该在哪里拦截,我应该拦截什么才能使其发挥作用?

我是否可以使用在渲染之前发生的生命周期事件,但是在页面本身构建之后(因此发生了错误?)在该事件中,我是否已准备好页面控件?假设我有一个母版页并且modalpopup将在那里,我可以在母版页中进行这种一般的错误处理吗?

这是我需要使用global.asax吗? (我从来没有使用它,但是有这样的名字和它有的事件,我可以想象它的作用)

这甚至可行吗?我可以捕获每个异常,甚至是与我的页面相关的浏览器错误吗?

编辑:

我的问题不在于用户看到的内容,我不希望浏览器显示堆栈跟踪和黄色错误页面,从而破坏了用户迄今所做的任何事情。 我想创建一个漂亮和干净的用户体验,如果用户可以从导致异常的任何问题中恢复,我希望他们有选项,其中包括不破坏他们在回发之前的页面。这是可以理解的还是我无法更好地解释这一点?

2 个答案:

答案 0 :(得分:0)

您可以使用javaScript轻松完成此操作:

window.onerror = function(msg, url, linenumber) {
    alert('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber);
    return true;
}

http://www.javascriptkit.com/javatutors/error2.shtml

答案 1 :(得分:0)

一般来说,这里有一个关于如何在ASP.NET中处理错误(包括全局错误)的链接:

How to: Display Safe Error Messages

然后关于modalpopup,在链接中提到的示例中,用户被重定向到其他一些错误页面。您可以将错误消息传递到该错误页面,然后在该错误页面上显示modelpopup。