c# - 使用 ErrorController 而不是直接 View 处理错误

标签 c# asp.net-mvc error-handling error-logging

我正在努力了解 MVC 中的错误处理。 我正在寻找的是一种集中式的方式来捕获错误、记录它们、如果可能的话解决它们,如果有必要则采取其他行动并最终向用户显示正确的 View 。

我想我可以为此使用 [HandleError] 过滤器,但我看不出有什么方法可以将它路由到 Controller / Action 。我看到的唯一选择是将它直接指向一个 View 。

最佳答案

HandleErrorAttribute MVC 附带的是一个非常基本的 IExceptionFilter。

你有几个选择来实现我认为你想要的。

您可以在操作/ Controller 上使用 [HandleError (Type=typeof(MyException),View="ErrorView")] 或实现您自己的

HandleErrorAttribute不是很复杂。我认为 MS 建议您复制此代码并进行修改以满足您的要求。

OnException 覆盖使您可以通过 ExceptionContext 访问您可能需要的所有信息 - Controller 、操作、路由数据等。

请记住设置 ExceptionHandled。然后您可以将 filterContext.Result 设置为一个新的 RedirectToAction 实例,该实例重定向到您的 ErrorController 和操作 - 显然您可以使用属性公开特定的 Controller 和操作。

关于c# - 使用 ErrorController 而不是直接 View 处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/197414/

相关文章:

c# - Web 表单页面指令中的 CompilationLock 错误

C++异常处理困惑

r - 将数据从R写入Redshift问题

function - 为什么我收到此错误消息 “UnboundLocalError: local variable ' sigma_opt在分配前被引用”

c# - 如何使用 SoundPlayer 淡出 .wav 文件的音频而不是立即停止?

c# - PayPal 快速结帐在 MVC .net 中以 html 形式返回响应

c# - 锁定原始类型

C# Razor 该名称在当前上下文中不存在

C#:获取文件大缩略图/预览,而不是大图标,使用 SHGetImageList 和 SHGetFileInfo,如 Windows 资源管理器

c# - 条目(数据库)已添加