码迷,mamicode.com
首页 > Web开发 > 详细

asp.net mvc中的拦截器

时间:2018-10-11 18:46:38      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:webform   led   操作   void   return   跳转   日志   利用   告诉   

在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#里面的特性,真是方便极了,请看代码!(PS:action和controller都一樣!)

        [ResultFillters]
        [ActionFillters]
        [ExceptionFillters]
        public ActionResult Index()
        {
            ViewData["Message"] = "Welcome to ASP.NET MVC!";
            return View();
        }

看到了沒有,只要在action上面寫三個Attibute,一切都就都完成了,其它的事情都是讓框架幫你完成了,相對在webForm裡面想使用Aop,這裡可以簡單百倍呀!試一下吧,只看不練一下子就會忘記的,這裡只是給出核心代码,朋友自己试一下吧!

asp.net mvc中的拦截器

标签:webform   led   操作   void   return   跳转   日志   利用   告诉   

原文地址:https://www.cnblogs.com/zquan/p/9773538.html

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