zoukankan      html  css  js  c++  java
  • MVC系列学习(十七)-过滤器

    本次学习的文件结构如下

    image

    1.过滤器的几种表示方式

    1.1将过滤器 加到方法上,作用范围为该方法

    image

    1.2将过滤器加到当前类上,作用范围为该类的所有方法

    image

    1.3添加全局过滤器,作用范围为所有方法

    image

    2.Action过滤器

    作用范围:执行在Action方法前后

    2.1代码

    public class MyActionFilterAttribute:ActionFilterAttribute
    {
        //在Action方法执行之前
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            filterContext.HttpContext.Response.Write("执行Action方法前-OnActionExecuting<br/>");
            base.OnActionExecuting(filterContext);
        }
        //在Action方法执行之后
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            filterContext.HttpContext.Response.Write("执行Action方法后-OnActionExecuted<br/>");
            base.OnActionExecuted(filterContext);
        }
    }

    image

    2.2运用-获得路由信息及路由对象

    image

    2.3运用-检查被请求的方法 是否 加了某特性

    image

    查看运行结果

    image

    一张图来记忆:

    原来是跳过了2,3,即跳过了Action方法的执行,但4,5,6照样执行

    image

    3.Result过滤器

    作用范围:加载“视图”前后,因为有些Action方法不会生成视图,但以下方法照样会执行

    代码如下:

    public class MyResultFilterAttribute:ActionFilterAttribute
    {
        //加载“视图”前执行
        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            filterContext.HttpContext.Response.Write("加载视图前执行OnResultExecuting<br/>");
            base.OnResultExecuting(filterContext);
        }
        //加载“视图”后执行
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            filterContext.HttpContext.Response.Write("加载视图后执行OnResultExecuted<br/>");
            base.OnResultExecuted(filterContext);
        }
    }

    查看运行结果

    image

    4.授权过滤器

    作用范围:在Action方法前

    image

    5.异常处理过滤器

    image

    更多精彩内容请看:http://www.cnblogs.com/2star
  • 相关阅读:
    假如时光倒流,我会这么学习Java
    一位资深程序员大牛给予Java初学者的学习路线建议
    Java基础部分全套教程.
    假如时光倒流,我会这么学习Java
    Window Location对象
    Window Screen对象
    Window
    easyui datagrid 清除缓存方法
    easyui tree扩展tree方法获取目标节点的一级子节点
    JavaScript 对象
  • 原文地址:https://www.cnblogs.com/kimisme/p/4525432.html
Copyright © 2011-2022 走看看