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

ASP.NET MVC重點教程一周年版 第六回 過濾器Filter

編輯:關於ASP.NET

在Asp.netMvc中當你有以下及類似以下需求時你可以使用Filter功能

判斷登錄與否或用 戶權限

決策輸出緩存

防盜鏈

防蜘蛛

本地化與國際化設置 

實現動態Action

Filter是一種聲明式編程方式,在Asp.net MVC中它只能限制於Action(或 它的Controller)。

Filter要繼承於ActionFilterAttribute抽象類,並可以覆寫void OnActionExecuting(ActionExecutingContext)和

void OnActionExecuted (ActionExecutedContext)

以及void OnResultExecuting(ResultExecutingContext)和

void OnResultExecuted(ResultExecutedContext)

OnActionExecuting是Action執 行前的操作,OnActionExecuted則是Action執行後的操作

而OnResultExecuting是解析 ActionResult前執行,OnResultExecuted是解析ActionResult後執行。

一、應用於Action 的Filter

下面我給大家一個示例,來看看它的的執行順序

首先我們先建立 一個 Filter,名字叫做TestFilter

public class TestFilter :  ActionFilterAttribute
{
public override void OnActionExecuting (ActionExecutingContext filterContext)
{
filterContext.HttpContext.Session ["temp"] += "TestFilter OnActionExecuting<br/>";
}

public override void OnActionExecuted(ActionExecutedContext  filterContext)
{
filterContext.HttpContext.Session["temp"] +=  "TestFilter OnActionExecuted<br/>";
}
public override  void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.HttpContext.Session["temp"] += "TestFilter  OnResultExecuting<br/>";
}

public override void  OnResultExecuted(ResultExecutedContext filterContext)
{
filterContext.HttpContext.Session["temp"] += "TestFilter  OnResultExecuted<br/>";
}
}

然後建立一個Action:

[TestFilter]//將此Filter應用於Action
public  ActionResult filteraction()
{
return View();
}

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