MVC 自定义拦截器 IActionFilter(或ActionFilterAttribute)、IExceptionFilter(或HandleErrorAttribute)

本文介绍了ASP.NET MVC中的拦截器,包括Action拦截器和Exception拦截器的使用。通过实例展示了如何创建拦截器类,实现IActionFilter和IExceptionFilter接口,以及如何在控制器中应用拦截器,用于日志记录和异常处理。
摘要由CSDN通过智能技术生成

英文学习:Filter  [ˈfɪltɚ]  拦截器 

全局过滤器:FilterConfig.cs https://www.cnblogs.com/webapi/p/5669057.html

    public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
            filters.Add(new LoggerFilter());
        }
    }
filters.Add();

MVC 拦截器

典型的AOP(面向切面编程)。厨师可以看成是业务组件,它有个方法就是“炒菜”,但是炒菜前要切菜,炒完了要有人送菜,可这不是厨师该关心的事啊!于是我们的切菜工和服务员就相当于拦截器,其中切菜工在炒菜前拦截,进行切菜,服务员在炒菜后拦截,负责送菜。当然,我们还有个异常拦截器:处理问题的人,就是那个当厨师发现肉变质了喊一声,就来处理的人。

 

在ASP.NET MVC中,有三种拦截器:Action拦截器、Result拦截器和Exception拦截器。
我要用到第一种和第三种。其实所谓的

ASP.NET MVC拦截器,也没什么神秘的,就是一个普通的类而已。只不过需要继承FilterAttribute基类(如果不继承,就不能做为特性来使用)
Action拦截器还要实现IActionFilter接口,Result拦截器需要实现IResultFilter接口,Exception拦截器需要实现
IExceptionFilter接口。

实例:

公告发布功能添加日志记录能力,即在发布公告前,记录一次,在公告发布成功后,再记录一次。然后还要使得其具备异常处理,即当业务组件出现问题时,跳转到相应的错误页面并显示相应提示。

 

1、添加日志拦截器Controllers目录下新建一个Filters目录,然后在Filters下新建LoggerFilter.cs

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

namespace MyPeb.Mvc.Controllers.Filters
{
    //Actio
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tiz198183

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值