Action Filter
来源:互联网 发布:用友网络上市时间 编辑:程序博客网 时间:2024/06/04 18:39
Action Filter 是可以附加在Action上的标签.
ASP.NET MVC中包括了一些Filter, 如:
OutputCache:一个缓存,在指定时间间隔更新.
HandleError: 处理错误
Authorize: 授权,限制访问.
当然我们也可以创建自定义的filter.
MVC中支持以下四种Filter:
- Authorization filters – Implements the
IAuthorizationFilter
attribute. - Action filters – Implements the
IActionFilter
attribute. - Result filters – Implements the
IResultFilter
attribute. - Exception filters – Implements the
IExceptionFilter
attribute.
自定义的过滤器,可以从ActionFilterAttribute继承,它继承于Filter,同时也继承了两个接口:
IActionFilter
及 IResultFilter,所以需要同时四个方法:
- OnActionExecuting – This method is called before a controller action is executed.
- OnActionExecuted – This method is called after a controller action is executed.
- OnResultExecuting – This method is called before a controller action result is executed.
- OnResultExecuted – This method is called after a controller action result is executed.
一个记录日志的Action例子:
1: using System;
2: using System.Diagnostics;
3: using System.Web.Mvc;
4: using System.Web.Routing;
5:
6: namespace MvcApplication1.ActionFilters
7: {
8: public class LogActionFilter : ActionFilterAttribute
9: {
10: public override void OnActionExecuting(ActionExecutingContext filterContext)
11: {
12: Log("OnActionExecuting", filterContext.RouteData);
13: }
14:
15: public override void OnActionExecuted(ActionExecutedContext filterContext)
16: {
17: Log("OnActionExecuted", filterContext.RouteData);
18: }
19:
20: public override void OnResultExecuting(ResultExecutingContext filterContext)
21: {
22: Log("OnResultExecuting", filterContext.RouteData);
23: }
24:
25: public override void OnResultExecuted(ResultExecutedContext filterContext)
26: {
27: Log("OnResultExecuted", filterContext.RouteData);
28: }
29:
30: private void Log(string methodName, RouteData routeData)
31: {
32: var controllerName = routeData.Values["controller"];
33: var actionName = routeData.Values["action"];
34: var message = String.Format("{0} controller:{1} action:{2}", methodName, controllerName, actionName);
35: Debug.WriteLine(message, "Action Filter Log");
36: }
37:
38: }
39: }
- Action Filter
- Action Filter
- MVC Action Filter
- Filter过滤不了action
- MVC Action Filter
- filter-设置action编码
- Android Intent-Filter中的action
- Action Filter 与 内置的Filter实现(介绍)
- Action Filter 与 内置的Filter实现(实例-防盗链)
- ASP.NET MVC Action Filter与内置的Filter实现
- ASP.NET MVC的Action Filter
- ASP.NET MVC的Action Filter
- Android:Intent Filter 和 action 简介
- Filter过滤不了Action的问题
- filter对action不起作用的原因
- AndroidManifest Intent-Filter Action android:name属性
- (转)Android:Intent Filter 和 action 简介
- 通过action 、filter来启动service/activity
- pku1063 Flip and Shift
- live writer test
- TQ2440 QT环境搭建
- 生活真理
- STL 源码解析中构建的小型空间适配器
- Action Filter
- 并发
- C语言接口与实现-创建可重用软件的技术(笔记12)
- memcached client -- spymemcached使用
- 人生就是一个接一个的杯具
- SetTimer方法(ZZ)
- [快乐android1]建立一个新工程的输入项目
- SQL Server数据库查询优化50妙计(上篇)
- IE/Firefox中JS兼容常见问题