学习笔记38_过滤器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记38_过滤器相关的知识,希望对你有一定的参考价值。

Action过滤器:在Action执行之前和执行之后分别干一些事情

Action过滤器要实现IActionFilter。

步骤:

1.在Model文件夹中,添加一个自定义类

public class XXXXXActionFilterAttribute:ActionFilterAttribute

{

  public string Name{get;set;}

  public override void OnActionExecuting(ActionExecutingContext filterContext)

  {

    base.OnAcionExecuting(filterContext);

    ......;

    //例如

    filter.HttpContext.Respone.Wirte("<br/>........");

  }

  public override void OnActionExecuted(ActionExecutedContext filterContext)

  {

    base.OnActionExecuted( filterContext);

    ......;

  }

  

  public override void OnResultExecuting(ActionExecutingContext filterContext)

  {

    base.OnResultExecuting(filterContext);

    ......;

  }

 public override void  OnResultExecuted(ActionExecutedContext filterContext)

  {

    base. OnResultExecuted( filterContext);

    ......;

  }

}

2.使用

在Action方法当中

[ XXXXXActionFilterAttribute("Name")]

public ActionResult Index()

{

  

}

***如果在控制器上放打[ XXXXXActionFilterAttribute("Name")],那么此控制器下的所有Action都会受到影响。

****如果想令所有控制器都打上ActionFilterAttribute,那么,可以到 Clobal.asax中,

FilterConfig.RegisterGlobalFilters(GlobalFilter.Filters),//RegisterGlobalFilters转到定义:

在App_Start->FilterConfig.cs-> 

public static void  RegisterGlobalFilters(....)

{

  //加上

  filters.Add(new XXXXXActionFilterAttribute());

}

*

[AttributeUsage(AttributeTargets.All, AllowMultipute =false,Inherited = true)]

//表示这个FilterAttribute能再那些地方起作用,能不能打多次,即能不能过滤多次,Inherited是否能继承。

public class XXXXXActionFilterAttribute:ActionFilterAttribute{...}

3.使用场合:

用于要检查用户是否登录。

以上是关于学习笔记38_过滤器的主要内容,如果未能解决你的问题,请参考以下文章

Java过滤器Filter的原理及配置_学习笔记

JAVAWEB学习笔记24_filter实现自动登录和解决全局的编码问题

python学习笔记

Python学习笔记__4.1.2章 filter

Filter的细节三学习笔记

学习笔记第二十五节课