asp.net mvc之过滤器

先看一段实例

public class Log : FilterAttribute, IActionFilter
    {
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            Console.WriteLine("log-after");
        }

        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            Console.WriteLine("log-before");
        }
    }
public class HomeController : Contoller
    {
        [Log]
        public ActionResult Index()
        {
            return View();
        }
    }

MVC有四种过滤器

ActionFilter(方法过滤器):实现接口:[IActionFilter];在Action调用前和调用后执行

ResultFilter(结果过滤器):实现接口:[IResultFilter];在Action Result调用完,跳转至view页面前/后执行

AuthorizationFilter(授权过滤器):实现接口:[IauthorizationFilter];所有过滤器中最先执行的

ExceptionFilter(异常处理过滤器):实现接口:[IExceptionFilter]:在控制器方法抛出异常时执行

应用场景

public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
            filters.Add(new MyAuthorAttribute());
            filters.Add(new ExceptionFilter());//异常过滤器
        }
    }

public class MyAuthorAttribute : FilterAttribute, IAuthorizationFilter
    {
        public void OnAuthorization(AuthorizationContext filterContext)
        {
///
        }
    }

Global实现全局

//实现全局
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

原文地址:https://www.cnblogs.com/shiyige-216/p/8656631.html

时间: 2024-11-03 15:13:19

asp.net mvc之过滤器的相关文章

ASP.NET MVC : Action过滤器(Filtering)

http://www.cnblogs.com/QLeelulu/archive/2008/03/21/1117092.html ASP.NET MVC : Action过滤器(Filtering) 相关文章: ASP.NET MVC URL Routing 学习 AP.NET MVC : 控制器 和 控制器Actions ASP.NET MVC 学习: 视图 有时候你想在调用action方法之前或者action方法之后处理一些逻辑,为了支持这个,ASP.NET MVC允许你创建action过滤器

[翻译] 使用ASP.NET MVC操作过滤器记录日志

[翻译] 使用ASP.NET MVC操作过滤器记录日志 原文地址:http://www.singingeels.com/Articles/Logging_with_ASPNET_MVC_Action_Filters.aspx 翻译:Anders Liu 摘要:日志记录是一种常见的交错关注点(Cross-Cutting Concern),很多ASP.NET开发者会在Global.asax文件中处理它.由于MVC是构建在ASP.NET之上的,所以你可以使用同样的解 决方式,但还有更好的方法.这篇文章

ASP.NET MVC 全局过滤器(FilterConfig)、标记在控制器上和方法上的筛选器执行顺序

原文:ASP.NET MVC 全局过滤器(FilterConfig).标记在控制器上和方法上的筛选器执行顺序 FilterConfig->控制器上的筛选器-->方法上的筛选器(大-->小,上-->下) 全局-->控制器->个别 尝试的时候记得把返回true 1 protected override bool AuthorizeCore(HttpContextBase httpContext) 2 { 3 //return base.AuthorizeCore(httpC

Asp.Net MVC在过滤器中使用模型绑定

废话不多话,直接上代码 1.创建MVC项目,新建一个过滤器类以及使用到的实体类: 1 public class DemoFiltersAttribute : AuthorizeAttribute 2 { 3 public override void OnAuthorization(AuthorizationContext filterContext) 4 { 5 var person = new Person(); 6 //过滤器中使用模型绑定 7 BindModel<Person>(filt

asp.net mvc 利用过滤器进行网站Meta设置

过去几年都是用asp.net webform进行开发东西,最近听说过时了,同时webform会产生ViewState(虽然我已经不用ruanat=server的控件好久了 :)),对企业应用无所谓,但对于互联网应用就不太友好了,这几天学习了一下asp.net mvc,自己做了个网站玩玩(asp.net mvc + bootstrap + html5),随便也学习一下. 网站的组织: 三个网站分别为 index主站.Info信息咨询站.live视频站,利用Areas进行分开 namespace D

【转载】ASP.NET MVC的过滤器

APS.NET MVC中(以下简称“MVC”)的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理.这时候就用到了过滤器. MVC支持的过滤器类型有四种,分别是:Authorization(授权),Action(行为),Result(结果)和Exception(异常).如下表, 过滤器类型 接口 描述 Authorization IAuthorizationFilter 此类型(或过滤器)用于限制进入控制器或控制器的某个行为方法 Exce

Asp.Net MVC part45 过滤器、模板页

过滤器 使用方式自定义类继承自相应的类或接口,重写方法,作为特性使用在控制器类中重写方法 特性方式的使用注意:如果继承自接口需要让类实现FilterAttribute,才可以作为特性使用使用方式1:作为Controller或Action的特性使用方式2:在Global中注册为全局过滤器,应用于所有的Controller的Action参数类均继承自ControllerContext,主要包含属性请求上下文.路由数据.结果 身份验证过滤器在约束的Action执行前执行重写OnAuthorizatio

Asp.Net Mvc Action过滤器(二)

在Mvc中为Action添加过滤器,有两种方式, 一.使用ActionFilterAttribute,简单方式,同时支持Result的过滤处理, 1.可以为空,支持的重写:OnActionExecuted,OnActionExecuting,OnResultExecuted,OnResultExecuting 2.支持类定义或方法定义 3.不支持多个过滤器实例,我的理解是一个action只能指定一个过滤器,目前还没有验证. // // 摘要: // 表示筛选器特性的基类. [AttributeU

ASP.NET MVC的过滤器

APS.NET MVC中(以下简称“MVC”)的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理.这时候就用到了过滤器. MVC支持的过滤器类型有四种,分别是:Authorization(授权),Action(行为),Result(结果)和Exception(异常).如下表, 过滤器类型 接口 描述 Authorization IAuthorizationFilter 此类型(或过滤器)用于限制进入控制器或控制器的某个行为方法 Exce