在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#里面的特性,真是方便极了,直接在加上标签便可;
1 [ResultFillters] 2 [ActionFillters] 3 [ExceptionFillters] 4 public ActionResult Index() 5 { 6 ViewData["Message"] = "Welcome to ASP.NET MVC!"; 7 return View(); 8 } 9