ASP.NET MVC筆記 之 Action 過濾器

作者: Johnhormy  來源: 博客園  發布時間: 2009-04-07 16:15  閱讀: 9935 次  推薦: 3   原文鏈接   [收藏]  
 
[1] 使用Action 過濾器
[2] 自定義過濾器

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

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

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

Authorize – 約束特定用戶或角色對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屬性設定過濾器執行的順序。

[第1頁][第2頁]
3
2
 
標簽:MVC
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()