程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Asp.net Mvc Framework 七 (Filter及其執行順序)

Asp.net Mvc Framework 七 (Filter及其執行順序)

編輯:關於ASP.NET

應用於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;
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/>";
    }
  }
}
在這裡我們在Session["temp"]上標記執行的順序

我們在Controller中的Action中寫以下代碼

[TestFilter]
    public void Index() {
this.HttpContext.Session["temp"] += "Action<br/>";
      RenderView("Index");
    }

在這個Action執行的時候,我們也為Session["temp"]打上了標記.

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