我是 MVC3 的新手。我已经为一些 CRUD 操作做了一个 MCV3 应用程序。
现在我想在 MVC3 中做一些错误处理。我在这里看到了一篇关于错误处理的文章。
- 有人可以简要解释一下 MVC 中的各种错误处理方法吗?
- 我们是否需要创建任何自定义类来处理错误处理?
我是 MVC3 的新手。我已经为一些 CRUD 操作做了一个 MCV3 应用程序。
现在我想在 MVC3 中做一些错误处理。我在这里看到了一篇关于错误处理的文章。
PS我用我对这个超级通用问题的理解来回答这个问题。
1 - 有人可以简要解释一下MVC中错误处理的各种方法吗?
对于全局错误处理
您所要做的就是更改 web.config 页面中的 customErrors mode="On"
错误将通过 Error.cshtml 显示在共享文件夹中。
确保 Error.cshtml Layout 不是 null。
[它应该类似于:@{ 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 异常处理程序示例:
public class MyController: Controller
{
[HandleError(View = "NotImplErrorView", ExceptionType=typeof(NotImplementedException))]
public ActionResult Index()
{
throw new NotImplementedException("This method is not implemented.");
return View();
}
}
2 - 我们是否需要创建任何自定义类来处理错误处理?
请参阅此实现错误处理过滤器
您还应该查看 Elmah Library 以进行错误记录。