ASP.NET MVC中的错误处理
2016-06-19 15:48
651 查看
ASP.NET MVC中的错误的错误处理跨越了两个主要领域:程序异常和路由异常的处理。前者是关于在控制器和视图中捕获错误的;而后者更多是有关重定向和HTTP错误的。
1、在WebConfig中把过滤器配置启动
控制器的代码报错时,会跳转到~/Views/Shared/Error.cshtml页面。mode="Off"页面不会跳转直接显示错误信息。
2、绑定异常过滤器(过滤范围是在controller的action方法中。)
3、处理路由异常
4、使用HTTP模块的全局错误处理
1、在WebConfig中把过滤器配置启动
<customErrors mode="On"> </customErrors>
控制器的代码报错时,会跳转到~/Views/Shared/Error.cshtml页面。mode="Off"页面不会跳转直接显示错误信息。
2、绑定异常过滤器(过滤范围是在controller的action方法中。)
public class FilterConfig { //效果相当于每个控制器的方法都添加了这个特性 //[HandleError(ExceptionType = typeof(NullReferenceException), View = "error")] //public ActionResult Index() public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); } }
3、处理路由异常
<customErrors mode="On"> <error statusCode="404" redirect="~/Home/Index"/> </customErrors>
4、使用HTTP模块的全局错误处理
public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } protected void Application_Error(object sender,EventArgs e) { var exception = Server.GetLastError(); if (exception == null) return; Server.ClearError(); } }
相关文章推荐
- Spring中的AOP——AspectJ的基本使用
- 如何使用树莓派CPU挖矿(没有测试成功)
- 树莓派+aria2+yaaw搭建下载机
- ASP.Net请求处理机制初步探索之旅 - Part 5 ASP.Net MVC请求处理流程
- ASP.Net请求处理机制初步探索之旅 - Part 4 WebForm页面生命周期
- ASP.Net请求处理机制初步探索之旅 - Part 3 管道
- ASP.Net请求处理机制初步探索之旅 - Part 2 核心
- ASP.Net请求处理机制初步探索之旅 - Part 1 前奏
- ASP.NET应用程序和页面生命周期
- ASP。net开发基础(一)
- aspx与服务器控件探秘
- ASP.NET Core Authorization
- asp.net MVC ajax上传文件
- ASP.NET Core 中文文档 第二章 指南(4.6)Controller 方法与视图
- 树莓派raspiberry pi 如何使用root登陆
- ASP.NET MVC 3.0 _viewstart.cshtml的作用
- Autofac 依赖注入 ASP.NET MVC5 插件机制中插件的简单实现
- Asp.net mvc中整合autofac
- ASP.NET MVC 网站开发总结(六)——简谈Json的序列化与反序列化
- [RaspberryPi]树莓派初体验 - 系统安装与SSH连接