【发布时间】:2011-06-18 03:59:48
【问题描述】:
我想在我的应用程序中添加一个友好的错误页面,其中会显示类似“糟糕,出了点问题”这样的文字。我希望即使出现异常,也可以为我的应用程序的每个页面自动显示错误页面。我怎样才能做到这一点?
【问题讨论】:
标签: c# .net asp.net-mvc exception-handling custom-error-pages
我想在我的应用程序中添加一个友好的错误页面,其中会显示类似“糟糕,出了点问题”这样的文字。我希望即使出现异常,也可以为我的应用程序的每个页面自动显示错误页面。我怎样才能做到这一点?
【问题讨论】:
标签: c# .net asp.net-mvc exception-handling custom-error-pages
只需在 web.config 中启用自定义错误:
<customErrors mode="On">
</customErrors>
并且~/Views/Shared/Error.aspx 视图将在未处理的错误时呈现(假设您的控制器使用[HandleError] 属性装饰)。
然后你可以对不同的异常有更细粒度的控制和不同的视图:
[HandleError(
View = "~/Views/Errors/Custom.aspx",
ExceptionType = typeof(SomeCustomException))]
【讨论】:
<customErrors> 进入<system.web>。 Error.aspx 通常由 ~/Views/Shared 文件夹中的默认模板创建,但如果它不存在,您可以创建它。
<system.web><customErrors mode="On" /></system.web>,并且抛出异常的控制器使用了[HandleError] 属性。通常这就是自定义~/Views/Shared/Error.aspx 页面显示所需的全部内容。还要确保您在黄屏中看到的错误与渲染Error.aspx 视图无关。例如,如果此视图使用母版页,并且在此母版页内您尝试访问一些不可用的信息,您可能会遇到异常。