Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选

首页 / 网页编程 / ASP.NET / Asp.net Mvc Framework 七 (Filter及其执行顺序)

Asp.net Mvc Framework 七 (Filter及其执行顺序)2010-09-03 博客园 重典应用于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"]打上了标记.