码迷,mamicode.com
首页 > 其他好文 > 详细

学习笔记38_过滤器

时间:2017-06-25 14:19:00      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:attr   model   定义   wirte   base   targe   exec   tin   als   

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_过滤器

标签:attr   model   定义   wirte   base   targe   exec   tin   als   

原文地址:http://www.cnblogs.com/pylblog/p/7076665.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!