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
  • 相关阅读:
    C语言宏的定义和宏的使用方法(#define)
    C语言字符串拼接
    OC字符串与C语言字符串之间的相互转换
    C语言#include的用法
    NSSet集合
    NSArray 数组
    预定义宏,C语言预定义的宏详解
    主流C语言编译器介绍
    无法使用此电子邮件地址。请选择其他电子邮件地址
    可变大小、颜色边框、样式的UISwitch
  • 原文地址:https://www.cnblogs.com/kimisme/p/4525432.html
Copyright © 2011-2022 走看看