1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6. using 过滤器.Controllers;
  7.  
  8. namespace 过滤器.Filtes
  9. {
  10. public class MyActionFiterAttribute : ActionFilterAttribute
  11. {
  12.  
  13. /// <summary>
  14. /// Action过滤器 执行方法之前
  15. /// </summary>
  16. /// <param name="filterContext"></param>
  17. public override void OnActionExecuting(ActionExecutingContext filterContext)
  18. {
  19. //RouteData保存了当前请求的路由信息
  20. // filterContext.RouteData.Values["action"];
  21. // filterContext.RouteData.DataTokens["area"]; 获取区域名称
  22. if (filterContext.ActionDescriptor.IsDefined(typeof(MyActionFiterAttribute), false))//检查当前请求的action是否有贴MyActionFiterAttribute标签
  23. {
  24. //不执行Action方法,也不执行OnActionExecuted方法,会执行Result过滤器
  25. filterContext.Result = new ContentResult();//给当前请求设置返回结果,不会再继续执行当前的action
  26. }
  27. filterContext.HttpContext.Response.Write("哈哈哈哈哈~!!!OnActionExecuting");
  28. base.OnActionExecuting(filterContext);
  29. }
  30. //执行方法之后
  31. public override void OnActionExecuted(ActionExecutedContext filterContext)
  32. {
  33. filterContext.HttpContext.Response.Write("哈哈哈哈哈~!!!OnActionExecuted");
  34. base.OnActionExecuted(filterContext);
  35. }
  36. //Result过滤器
  37. public override void OnResultExecuted(ResultExecutedContext filterContext)
  38. {
  39. filterContext.HttpContext.Response.Write("哈哈哈哈哈~!!!OnResultExecuted");
  40. base.OnResultExecuted(filterContext);
  41. }
  42. public override void OnResultExecuting(ResultExecutingContext filterContext)
  43. {
  44. filterContext.HttpContext.Response.Write("哈哈哈哈哈~!!!OnResultExecuting");
  45. base.OnResultExecuting(filterContext);
  46. }
  47. }
  48. }

MVC 过滤器 ActionFilterAttribute的更多相关文章

  1. MVC过滤器-->ActionFilterAttribute和HandleErrorAttribute

    自定义的action过滤器  需要继承自ActionFilterAttribute 接口 OnActionExecuting:  在方法执行之前执行 OnActionExecuted:  方法的逻辑代 ...

  2. mvc过滤器学习(1)

    mvc 过滤器结构图 AuthorizeAttribute AuthorizeAttribute是IAuthorizationFilter的默认实现,添加了Authorize特性的Action将对用户 ...

  3. MVC过滤器详解

    MVC过滤器详解   APS.NET MVC中(以下简称"MVC")的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理. ...

  4. ASP.NET MVC过滤器(一)

    MVC过滤器是加在 Controller 或 Action 上的一种 Attribute,通过过滤器,MVC 网站在处理用户请求时,可以处理一些附加的操作,如:用户权限验证.系统日志.异常处理.缓存等 ...

  5. MVC中ActionFilterAttribute用法并实现统一授权

    MVC中ActionFilterAttribute经常用来处理权限或者统一操作时的问题. 先写一个简单的例子,如下: 比如现在有一个用户管理中心,而这个用户管理中心需要登录授权后才能进去操作或浏览信息 ...

  6. MVC过滤器详解和示例

    原文  http://blog.csdn.net/ankeyuan/article/details/29624005 MVC过滤器一共分为四个:ActionFilter(方法过滤器),ResultFi ...

  7. NET MVC过滤器

    NET MVC过滤器 本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在ASP.NET MVC中有四种过滤器类型

  8. 解说asp.net core MVC 过滤器的执行顺序

    asp.net core MVC 过滤器会在请求管道的各个阶段触发.同一阶段又可以注册多个范围的过滤器,例如Global范围,controller范围等.以ActionFilter为例,我们来看看过滤 ...

  9. MVC过滤器简单理解

    之前对于MVC过滤器的理解一直处于很模糊的状态,就在网上找了一些很简单的案例做了一下学习,就找了一个比较容易理解的demo分享给大家. 新建一个MVC4项目,可以在global.asax文件中看到如下 ...

随机推荐

  1. javascript的本地存储 cookies、localStorage

    一.cookies 本地存储 首先是常用的cookies方法,网上有很多相关的代码以及w3cSchool cookies. // 存储cookies function setCookie(name,v ...

  2. 怎么实现类似星星闪烁的效果(box-shadow)

    有时候设计希望我们能够在页面实现类似星星闪烁的效果,如图: 我的解决办法是用box-shadow: html <div class="star04 active-blink" ...

  3. ArcEngine 添加字段

    private void AddField(IFeatureClass pFeatureClass, string name, string aliasName, esriFieldType Fiel ...

  4. Ubantu 命令

    进入窗口删除文件(所有文件都可以删除) gksudo nautilus 输入法问题 ibus-daemon -drx

  5. UIScrollView的基本使用和一些常用代理方法

    - (void)viewDidLoad { [super viewDidLoad]; scrollView = [[UIScrollView alloc] initWithFrame:CGRectMa ...

  6. “有箭头的视图”,即程序的Storyboard Entry Point。

    设置方法很简单:打开StoryBoard文件,选中要设置为第一视图的ViewController,在右边工具栏勾选Is Initial View Controller就好了,此时你会看到ViewCon ...

  7. Visual Studio .NET、.NET Framework和C#之间的联系

    Visual Studio .NET是一种集成开发环境(IDE),它包含3种高级程序设计语言,C#就是其中的一种:Visual Studio .NET之所以能把这三种语言有机结合起来并具有与平台无关的 ...

  8. Linux中Firefox——Httpfox插件安装及使用

    Httpfox插件安装步骤: 1.打开firefox浏览器,点击左上方"工具"中的"附加组件" 2.在弹出页中搜索"Httpfox",点击下 ...

  9. JavaScript中的原型继承原理

    在JavaScript当中,对象A如果要继承对象B的属性和方法,那么只要将对象B放到对象A的原型链上即可.而某个对象的原型链,就是由该对象开始,通过__proto__属性连接起来的一串对象.__pro ...

  10. linux学习方法之一

    相信不少想学习linux的新手们正愁不知道看什么linux学习教程好,下面小编给大家收集和整理了几点比较重要的教程,供大家学习,如需想学习更多的话,可到wdlinux学堂寻找更多教程. 1.什么是RP ...