1. 程式人生 > >asp.net mvc中的攔截器

asp.net mvc中的攔截器

c中 aop 方便 實現 handle asp exception 另一個 oid

在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中的攔截器