應用於Action的Filter
在Asp.netMvc中當你有以下及類似以下需求時你可以使用Filter功能
判斷登錄與否或用戶權限,決策輸出緩存,防盜鏈,防蜘蛛,本地化設置,實現動態Action
filter是一種聲明式編程方式,在Asp.net MVC中它只能應用在Action上
Filter要繼承於ActionFilterAttribute抽象類,並可以覆寫void OnActionExecuting(FilterExecutingContext)和
void OnActionExecuted(FilterExecutedContext)這兩個方法
OnActionExecuting是Action執行前的操作,OnActionExecuted則是Action執行後的操作
下面我給大家一個示例,來看看它的的執行順序
首先我們先建立 一個Filter,名字叫做TestFilter
using System.Web.Mvc;
在這裡我們在Session["temp"]上標記執行的順序
namespace MvcApplication2.Controllers
{
public class TestFilter : ActionFilterAttribute
{
public override void OnActionExecuting(FilterExecutingContext
filterContext) {
filterContext.HttpContext.Session["temp"] += "OnActionExecuting<br/>";
}
public override void OnActionExecuted(FilterExecutedContext
filterContext) {
filterContext.HttpContext.Session["temp"] += "OnActionExecuted<br/>";
}
}
}
我們在Controller中的Action中寫以下代碼
[TestFilter]
public void Index() {
this.HttpContext.Session["temp"] += "Action<br/>";
RenderView("Index");
}
在這個Action執行的時候,我們也為Session["temp"]打上了標記.