Man*_*kar 16 asp.net-mvc application-error onexception asp.net-mvc-2
我想处理应用程序范围错误并在asp.net mvc中显示ErrorView页面.有3种方法可以做到(或者我知道).
1) ErrorAttribute in BaseController:Controller class.
Can be used on individual Action/Controller/BaseController.
2) Override OnException() in the BaseController:Controller class.
Will work on Controllers derived from BaseController
3) Application_Error in Global_aspx.
Run Code Online (Sandbox Code Playgroud)
什么是最佳做法.这些方法中的哪一个应该用于应用程序范围的错误处理,或者我们应该使用多个还是仅使用一个.
如果我们在BaseController上处理ErrorAttribute或/和OnException()的错误,我们仍然应该在Application_Error()中处理它.
我们什么时候应该使用Application_Error()?
Iva*_*tev 11
HandleErrorAttribute是通过属性应用的MVC过滤器.如果发生异常,您可以提供要显示的视图名称,还可以指定此过滤器适用的基本(或特定)异常类型.如果没有提供视图名称,它将查找名为"Error"的视图.正如您已经注意到的那样,您可以将它应用于各种范围.它允许您根据异常指定不同的"错误页面"视图.
Controller.OnException 是一种方法,如果您的任何操作最终导致错误,将被调用.
上面两个都是MVC概念和MVC管道的一部分,它位于ASP.NET管道的顶部,如果使用上面的处理异常,它将不会传播到Application_Error,但是像http错误404,500这样的东西如果我没记错的话会的.
用什么?
绝对关注ELMAH的应用程序范围错误日志记录以及关于ELMAH和ASP.NET MVC的博客文章
关于显示错误页面,你应该罚款只使用[HandleError]和HandleErrorAttribute,因为它已经为你处理一切(可选的过滤和每个异常类型可选的自定义错误页).
| 归档时间: |
|
| 查看次数: |
7880 次 |
| 最近记录: |