本文主要是介绍MVC 自定义拦截器 IActionFilter(或ActionFilterAttribute)、IExceptionFilter(或HandleErrorAttribute),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
英文学习: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
这篇关于MVC 自定义拦截器 IActionFilter(或ActionFilterAttribute)、IExceptionFilter(或HandleErrorAttribute)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!