zoukankan      html  css  js  c++  java
  • MVC过滤器

    新建自己的过滤器.cs,方法和和视图过滤器都继承
    ActionFilterAttribute
    方法重写
    OnActionExecuting
    OnActionExecuted
     
    视图重写
    OnResultExecuting
    OnResultExecuted
    只要是Action方法都会交内部处理调用这二个方法 
     
    而filterContext.RouteData.Values["controller"].ToString();filterContext.RouteData.Values["action"].ToString();可以直接拿到从Url传过来的方法名和控制器名
    RouteData里面主要储存了匹配的路由信息
    如果本次请求的是请求了某个区域里的控制器方法,还可以通过
    filterContext.RouteData.DataTokens["area"].Value.ToString();拿到区域名称
     
    补充Filter:
     string actionName = filterContext.ActionDescriptor.ActionName;
                string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
                //检查 被 请求方法是否加了MoneyAttribute特性
                if (filterContext.ActionDescriptor.IsDefined(typeof(Filters.MoneyAttribute), false))
                {
                    //直接为请求设置返回结果,而不执行对应的Action方法,可见html源码,也不执行OnActionExecuted,但是是会执行Result过滤器和生成Result结果
                    //filterContext.Result = new ContentResult();
                    filterContext.Result = new ContentResult() { Content = "<br />哈哈被跳过了吧<br />" };
     
                }
     
    走向图如下:
  • 相关阅读:
    20200910-1 每周例行报告
    刷题-力扣-209. 长度最小的子数组
    刷题-力扣-面试题 05.03. 翻转数位
    刷题-力扣-118. 杨辉三角
    刷题-力扣-1894. 找到需要补充粉笔的学生编号
    刷题-力扣-498. 对角线遍历
    刷题-力扣-45. 跳跃游戏 II
    刷题-力扣-55. 跳跃游戏
    刷题-力扣-1221. 分割平衡字符串
    刷题-力扣-654. 最大二叉树
  • 原文地址:https://www.cnblogs.com/caigen029/p/3575684.html
Copyright © 2011-2022 走看看