程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET MVC筆記之Action過濾器

ASP.NET MVC筆記之Action過濾器

編輯:關於ASP.NET

Action 過濾器在代碼中體現為添加到Action上方的屬性,MVC框架包含了一些過濾器,如:

OutputCache –指示Controller在指定時間內緩存返回的結果。

HandleError –處理Contrller中Action拋出的異常

Authorize – 約束特定用戶或角色對Action的訪問

另外你還可以自己定義過濾器,比如:你想使用自定義的驗證機制;你想修改Action返回的數據等等 。

使用Action 過濾器

Action 過濾器不僅可以控制單個Action,也可以控制整個Contrller。同時,一個Action可以應用多 個過濾器。比如:

public class DataController : Controller
{
   [OutputCache(Duration=10)]
   public string Index()
   {
       return DateTime.Now.ToString("T");
   }
}

這個Action返回了當前時間,但是你若在10秒鐘內刷新界面,你會一直得到同一個值,因為這裡使用 了OutputCache(Duration=10)。

過濾器的類型

ASP.NET MVC 框架支持以下幾種過濾器:

1、Authorization 過濾器– 實現了 IAuthorizationFilter 接口。這一類的過濾器用來實現用戶驗 證和對Action的訪問授權。比如Authorize 就屬於Authorization 過濾器。

2、Action 過濾器– 實現了 IActionFilter 接口。它可以包含一些Action執行前或者執行後的邏輯 ,比如有一些過濾器專門用來修改Action返回的數據。

3、Result 過濾器– 實現了 IResultFilter 接口。它可以包含一些view result生成前或者生成後的 邏輯,比如有一些過濾器專門用來修改視圖向浏覽器展現前的結果。

4、Exception 過濾器– 實現了IExceptionFilter 接口。它用以用來處理Action或者Result的錯誤 ,也可以記錄錯誤。

過濾器的默認執行順序也和上面的列表相同,比如Authorization 過濾器會先於Action 過濾器執行, 而Exception 過濾器總會在最後執行。當然你也可以根據需要通過Order屬性設定過濾器執行的順序。

自定義過濾器

自定義過濾器必須繼承System.Web.Mvc.FilterAttribute ,並且實現上述幾個接口中的一個或者多個 。MVC框架為了方便開發人員,預定義了一個ActionFilterAttribute 類,它已實現了IActionFilter 和 IResultFilter 接口。你可以重載ActionFilterAttribute 類中以下幾個方法:

OnActionExecuting – 在Action執行之前調用。

OnActionExecuted – 在Action執行之後調用。

OnResultExecuting – 在Result產生之前調用。

OnResultExecuted – 在Result產生之前調用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved