您的位置:知识库 » .NET技术

ASP.NET MVC笔记 之 Action 过滤器

作者: Johnhormy  来源: 博客园  发布时间: 2009-04-07 16:15  阅读: 10396 次  推荐: 4   原文链接   [收藏]  
[1] 使用Action 过滤器
[2] 自定义过滤器

Action 过滤器在代码中体现为添加到Action上方的属性,MVC框架包含了一些过滤器,如:

OutputCache –指示Controller在指定时间内缓存返回的结果。

HandleError –处理Contrller中Action抛出的异常

Authorize – 约束特定用户或角色对Action的访问

使用Action 过滤器

Action 过滤器不仅可以控制单个Action,也可以控制整个Contrller。同时,一个Action可以应用多个过滤器。比如:

public class DataController : Controller
{
[OutputCache(Duration
=10)]
public string Index()
{
return DateTime.Now.ToString("T");
}
}


这个Action返回了当前时间,但是你若在10秒钟内刷新界面,你会一直得到同一个值,因为这里使用了OutputCache(Duration=10)。

过滤器的类型

ASP.NET MVC 框架支持以下几种过滤器:
    1、Authorization 过滤器– 实现了 IAuthorizationFilter 接口。这一类的过滤器用来实现用户验证和对Action的访问授权。比如Authorize 就属于Authorization 过滤器。
    2、Action 过滤器– 实现了 IActionFilter 接口。它可以包含一些Action执行前或者执行后的逻辑,比如有一些过滤器专门用来修改Action返回的数据。
    3、Result 过滤器– 实现了 IResultFilter 接口。它可以包含一些view result生成前或者生成后的逻辑,比如有一些过滤器专门用来修改视图向浏览器展现前的结果。
    4、Exception 过滤器– 实现了IExceptionFilter 接口。它用以用来处理Action或者Result的错误,也可以记录错误。
    过滤器的默认执行顺序也和上面的列表相同,比如Authorization 过滤器会先于Action 过滤器执行,而Exception 过滤器总会在最后执行。当然你也可以根据需要通过Order属性设定过滤器执行的顺序。

[第1页][第2页]
4
2
标签:MVC

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻