.net - 如何捕获MVC View 的异常?

标签 .net asp.net-mvc exception-handling

在 Controller 中,try...catch 可以捕获异常。如何在 View 中捕获异常?例如,一个 View 可能有如下代码:

<%= Html.Encode(Model.MyID)%>

如果 Model 为 null,则访问 View 时会出现异常。在哪里捕获异常并将用户重定向到带有用户友好错误消息的错误页面?

最佳答案

只需将 [HandleError] 属性添加到 Controller 类的顶部。这样,您的 Controller 生成的任何异常都将被处理,并且用户将看到/Views/Shared/Error.aspx。传递给该 View 的模型是 System.Web.Mvc.HandleErrorInfo 对象。

Controller :

[HandleError]
public class MyController : Controller
{
  public ActionResult Default()
  {
    MyClass thing = MyClassFactory.Create();
    return View(thing);
  }
}

这是“最后的手段”异常处理。大卫的回答最适合您可以提前想到的情况。

关于.net - 如何捕获MVC View 的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1074540/

相关文章:

java - 在哪里以及如何处理 spring+hibernate 异常?

c# - 如何从枚举创建 IEnumerable

.net - 使用 Powershell TOM 在 SSAS 表格中创建分区

asp.net-mvc - 将元素放在一行中

c# - ViewContext.Writer() 在 ASP.NET MVC 1.0 中不存在?

asp.net-mvc - 使用 MongoDB 托管 ASP.NET MVC 3 应用程序

c# - 在我的 C# 应用程序中处理异常的正确位置在哪里?

c# - 更换配置框架,寻找替代方案

c# - 我应该将 IDisposable 用于纯托管资源吗?

objective-c - 为什么 Xcode 4 不会因异常而中断?