ASP.NET MVC中的拦截器

Cat:软件技术 Tags:asp.net mvc 拦截器 Time:2017/11/15 13:43:55

在ASP.NET MVC中,有三种拦截器:Action拦截器、Result拦截器和Exception拦截器,

所谓的拦截器也没有什么的,只是写一个类,继承另一个类和一个接口,顺便实现接口里面的方法而以...


public class ExceptionFillters : FilterAttribute,IExceptionFilter  

{  

  //发生异常时会执行这段代码  

  public void OnException(ExceptionContext filterContext)  

  {  

  //在这里你可以记录发生异常时你要干什么,比例写日志  

  //这一行告诉系统,这个异常已经处理了,不用再处理  

  filterContext.ExceptionHandled = true;  

  }  

}

public class ActionFillters : FilterAttribute, IActionFilter  

{  

      public void OnActionExecuted(ActionExecutedContext filterContext)  

     {  

        //执行action后执行这个方法 比如做操作日志  

     }  

     public void OnActionExecuting(ActionExecutingContext filterContext)  

     {  

        //执行action前执行这个方法,比如做身份验证  

     }  

}

public class ResultFillters : FilterAttribute, IResultFilter  

{  

  public void OnResultExecuted(ResultExecutedContext filterContext)  

  {  

  //执行完action后跳转后执行  

  }  

  public void OnResultExecuting(ResultExecutingContext filterContext)  

  {  

  //执行完action后跳转前执行  

  }  

}

使用的时候更是方便,利用C#里面的特性,真是方便极了。

 

[ResultFillters]

[ActionFillters]

[ExceptionFillters]

public ActionResult Index()

{

ViewData["Message"] = "Welcome to ASP.NET MVC!";

return View();

}

 

只要在action上面加三个Attibute标记,一切都就都完成了,其它的事情都是让框架帮你完成了,相对在webForm里面想使用Aop,这里可以简单百倍。