程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Action Filters以及自定義OutputCache ActionFilterAttribute事件發生次序

Action Filters以及自定義OutputCache ActionFilterAttribute事件發生次序

編輯:關於ASP.NET

理解 Action Filters

Action filter 是能夠應用於 controller action --或整個controller的一個特性,它們的基類為System.Web.Mvc.FilterAttribute 。它限定了action執行的方式。ASP.NET MVC框架包含數個action filters。

HandleError – 這個action 過濾器處理controller action執行時出現的錯誤。

OutputCache – 這個action 過濾器將 controller action的輸出緩存一段制定的時間 .

Authorize – 這個action 過濾器使你能夠限制特定的用戶或角色的訪問.

使用Action Filter

action filter是一個特性. 你能夠應用大部分的action filters 在單個的controller action 或者整個controller上.

例如下面的Data controller有一個返回當前時間的Index()方法.這個action擁有OutputCache action filter. 這個過濾器導致由action返回的值能夠緩存10秒鐘.

VaryByParam 屬性使用的設置不建議通過設置“*”的值來使用所有參數進行區分。這可能會導致緩存溢出。

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
    
-->public class DataController : Controller
    {
        //
        // GET: /Data/
        [OutputCache(Duration = 20,VaryByParam ="")]
        public string Index()
        {
            return DateTime.Now.ToString();
        }
    }

如果你重復調用Index() action(不斷刷新當前頁面), 那麼你將看到當前的內容在Duration = 20秒內是不變的.

一個單一的action filter –  OutputCache action filter – 被應用於Index() 方法. 同樣,你可以應用多個action filters 在同一個action上.

不同類型的Filters

ASP.NET MVC框架支持多種不同類型的過濾器:

Authorization filters – 實現IAuthorizationFilter 特性.

Action filters – 實現IActionFilter 特性.

Result filters – 實現IResultFilter 特性.

Exception filters –實現IExceptionFilter 特性.

Filters 按照上面列出的順序執行。例如, authorization filters 總是在action filters之前執行,exception filters在所有其他類型的filter之後執行.

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