当前位置: 首页 > 编程语言 > C#

在ASP.NETMVC应用程序中使用HandleErrorAttribute分享

时间:2023-04-10 23:20:59 C#

在ASP.NETMVC应用程序中使用HandleErrorAttribute我有一个关于在我的MVC5应用程序中使用HandleErrorAttribute的最佳方法的问题。正如我们所知,我们可以将此属性添加到全局过滤器:filters.Add(newHandleErrorAttribute{View="Error"});这涉及应用程序在任何级别的应用程序“错误”视图中每次抛出未处理的异常时显示。但是如果我在其他全局授权或操作过滤器中有一些逻辑,生成一些异常,而不是第一次发生异常,然后应用程序尝试重定向到错误视图,其他过滤器再次开始执行并再次生成相同的异常,所以asp.net到避免此循环终止应用程序。那么使用此HandleErrorAttribute避免此行为的最佳方法是什么?谢谢!编辑:经过一些调试我发现这不是HandleErrorAttribute的常见行为,所以这种循环只发生在我使用自定义路由fe{key}/{controller}/{action}时出现一些错误过滤逻辑,应用程序尝试重定向到错误视图,但另一个过滤逻辑再次开始执行,我什至在{key}路由参数中看到“错误”值,所以这是不需要的行为。当我使用默认路由{controller}/{action}时,这不会发生,我完全获得了错误视图,而无需再次执行任何全局过滤器逻辑。您应该将操作过滤器逻辑包装在trycatch中,然后在catch块内,重定向到错误视图并传递异常。您唯一的其他选择是完全放弃HandleError并使用Global.asax中的Application_Error事件来管理您的错误处理。这样,无论错误发生在何处,您都可以重定向到其中的错误操作。Matt对于global.asax是正确的...这是我遵循的示例http://www.digitallycreated.net/Blog/57/getting-the-correct-http-status-codes-out-of-asp.net-自定义错误页面然后在每个视图中添加:Response.StatusCode=500;或我想向客户展示的任何其他代码。以上就是C#学习教程:在ASP.NETMVC应用中使用HandleErrorAttribute的全部内容分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收藏,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: