asp.net mvc中的攔截器


在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,這裡可以簡單百倍呀!試一下吧,只看不練一下子就會忘記的,這裡只是給出核心代碼,朋友自己試一下吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM