在 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/