MVC4 异常过滤器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcRazor.Models
{
    //异常过滤器
    public class MyExceptionFilterAttribute:HandleErrorAttribute
    {
        public override void OnException(ExceptionContext filterContext)
        {
            base.OnException(filterContext);
            //当出现异常的时候,才执行次方法
            //记录日志(1.多个线程同时访问一个日志文件(使用线程锁,但是性能非常低)2.使用队列)
            //加入观察者模式屏蔽变化点
            //也没跳转到错误页面或者首页
            HttpContext.Current.Response.Redirect("/Error/Index");
        }
    }
}
using MvcRazor.Models;
using System.Web;
using System.Web.Mvc;

namespace MvcRazor
{
    public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            #region 异常过滤器
            //替换成自己的异常过滤器
            //filters.Add(new HandleErrorAttribute());
            filters.Add(new MyExceptionFilterAttribute());
            #endregion
        }

    }
}
时间: 2024-10-09 11:19:57

MVC4 异常过滤器的相关文章

MVC4 apiController 过滤器ActionFilterAttribute一个小问题

其实就是工作中遇到的一个问题,网上搜了好久才找到,放在这里帮助他人吧. 相信大家新建MVC4的的控制器时 有时会选择继承apiController,正常基本项目的话控制器是继承Controller,api项目的是继承apiController.这里会有个细节,可能不容易察觉到,出了问题也不好找,就是新建过滤器的时候图方便直接继承了ActionFilterAttribute,如果你应引用的是System.Web.Http.Mvc下的ActionFilterAttribute同时控制器是继承的Con

MVC异常过滤器

MVC过滤器 一般的过滤器执行顺序 IAuthorizationFilter->OnAuthorization(授权) IActionFilter          ->OnActionExecuting(行为) Action IActionFilter          ->OnActionExecuted(行为) IResultFilter          ->OnResultExecuting(结果) View IResultFilter          ->OnR

MVC与WebApi中的异常过滤器

一.MVC的异常过滤器 1.自定义MVC异常过滤器 创建一个类,继承HandleErrorAttribute即可,如果不需要作为特性使用直接实现IExceptionFilter接口即可, 注意,该接口在System.Web.Mvc 命名空间下 /// <summary> /// 自定义的MVC异常过滤器 /// 可以在Controller或Action上单独使用,也可直接注册为全局过滤器 /// </summary> publicclassMVCExceptionFilterAtt

MVC异常过滤器 (错误页)

控制器 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MVC过滤器.Controllers { public class HomeController : Controller { // // GET: /Home/ public ActionResult Index(string id, string nam

MVC 全局异常过滤器HandleErrorAttribute

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc; namespace 过滤器.Filtes{ /// <summary> /// 全局异常过滤器/// </summary> public class MyHandleErrorAttribute:HandleErrorAttribute { public override voi

MVC4的过滤器

过滤器 提供的四种基本类型过滤器接口,IAuthorizationFilter.IActionFilter.IResultFilter和IExceptionFilter,可通过继承对应的接口和FilterAttrbute特性,定义自己的过滤器,也可继承内置的过滤器,重写相应的方法,完成自己的需求. 授权:IAuthorizeFilter  授权过滤器接口,对身份进行验证 活动:IActionFilter     行为过滤器接口, 执行Action方法前后执行逻辑 结果:IResultFilter

MVC 异常过滤器

本文实现对MVC异常处理功能,借此来讨论ASP.NET MVC中拦截器的使用方法. 第一步:写一个自己的异常过滤器,让它继承HandleErrorAttribute类 然后重写OnException()这个方法  (注:HandleErrorAttribute 类已经继承了FilterAttribute, IExceptionFilter这两个接口,并实现了它们,所以这我们只要继承HandleErrorAttribute就可以了) using System; using System.Colle

.net Log4Net日志的配置及使用 全局异常过滤器

.net添加Log4Net日志的配置及使用,以及将其设置为全局异常过滤器,主要有以下步骤: 1. 新建一个Web应用程序2. 引用log4net.dll3. 添加config文件4. 在AssemblyInfo.cs进行注册5. 在Global.asax中进行初始化设置6. 添加Log4Helper.cs帮助类7. 新增过滤器LogExceptionFilter.cs文件8. 在FilterConfig.cs中添加过滤器9. 在Global.asax中注册过滤器 详细步骤如下: 1.新建一个we

异常过滤器

自己定义类 public class MyException:System.Web.Mvc.HandleErrorAttribute { public override void OnException(System.Web.Mvc.ExceptionContext filterContext) { //下面的代码不可以被删除,否则捕获不到异常 base.OnException(filterContext); //捕获异常,跳转到错误页面 filterContext.Result = new S