我们如何在ASP.NET MVC3 Razor中进行错误处理?

时间:2012-11-09 06:20:53

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

我是MVC3的新手。我已经为一些CRUD操作完成了一个MCV3应用程序。

现在我想在MVC3中做一些错误处理。我看过一篇关于错误处理的文章here

  1. 有人可以简要介绍一下MVC中各种错误处理方法吗?
  2. 我们是否需要创建任何自定义类来处理错误处理?

1 个答案:

答案 0 :(得分:3)

P.S我在理解这个超级通用问题时回答了这个问题。

  

1 - 有人可以简要介绍一下MVC中各种错误处理方法吗?

全局错误处理
您所要做的就是在web.config页面中更改customErrors mode =“On” 错误将通过Error.cshtml显示在共享文件夹中。

确保Error.cshtml布局不为空 [它应该是这样的:@ {Layout =“〜/ Views / Shared / _Layout.cshtml”; } 或删除Layout = null代码块]
Error.cshtml的示例标记: -

@{ Layout = "~/Views/Shared/_Layout.cshtml"; } 

@model System.Web.Mvc.HandleErrorInfo

<!DOCTYPE html>
<html>
<head>
    <title>Error</title>
</head>
<body>
    <h2>
        Sorry, an error occurred while processing your request.
    </h2>
    <p>Controller Name: @Model.ControllerName</p>
    <p>Action Name : @Model.ActionName</p>
    <p>Message: @Model.Exception.Message</p>
</body>
</html>

针对特定错误处理
将HandleError属性添加到控制器类中的特定操作。为该特定错误提供“查看”和“例外类型” 示例NotImplemented Exception Handler:

public class MyController: Controller
    {
        [HandleError(View = "NotImplErrorView", ExceptionType=typeof(NotImplementedException))]
        public ActionResult Index()
        {
            throw new NotImplementedException("This method is not implemented.");
            return View();
        }
}
  

2 - 我们是否需要创建任何自定义类来处理错误处理?

请参阅此Implementing an Error-Handling Filter

您还应该查看Elmah Library的错误记录。