asp.net core mvc之 过滤器

过滤器允许我们在Action执行之前和执行之后去执行一下业务代码

一、过滤器的作用域

1、全局过滤器,   在Startup.cs文件中注册
2、控制器过滤器, 在控制器类上面使用标注
3、action过滤器

二、全局过滤器使用

1、在 core 目录,添加 TestActionFilter.cs 类并继承IActionFilter 实现

    public class TestActionFilter : IActionFilter{public void OnActionExecuted(ActionExecutedContext context){Debug.WriteLine("Action执行之后执行这里的代码");}public void OnActionExecuting(ActionExecutingContext context){Debug.WriteLine("Action执行之前执行这里的代码");}}

2、在Startup.cs 添加全局变量过滤器

注意: 

就算是区域的action 也会跳进这个过滤器里面的。所以关于全局过滤器 大家应该要谨慎使用。因为所有的请求 都会执行过滤器里面的代码。所以如果一些非常耗时的操作 不应该加到全局过滤器里面。
全局过滤器 主要处理一些 比如 防盗链 权限认证这些操作

三、控制器和Action级别过滤器

可以在控制器上面 进行标注使用某个过滤器控制器和Action的过滤器,需要实现一个特性类(如:ResultFilterAttribute)然后在里面 也可以实现OnResultExecuting另外 还可以添加自定义的属性。

特性类包含下面一些

ResultFilterAttribute     结果后过滤器
ActionFilterAttribute     执行前后过滤器
ExecutionFilterAttribute  异常过滤器
FormatFilterAttribute     格式化过滤器
ServiceFilterAttribute    服务过滤器
TypeFilterAttribute

1、core目录添加 MyResultFilterAttribute.cs 类

    public class MyResultFilterAttribute : ResultFilterAttribute{public string Val { get; set; }public override void OnResultExecuted(ResultExecutedContext context){}public override void OnResultExecuting(ResultExecutingContext context){}}

2、控制器,Action调用

 四、重写控制器基类的OnActionExecuted、OnActionExecuting两个方法,达到过滤器的效果

1、Controllers 文件夹添加 BaseController.cs类,继承Controller

    public class BaseController : Controller{public override void OnActionExecuted(ActionExecutedContext context){base.OnActionExecuted(context);Debug.WriteLine("Action执行之后执行这里的代码");}public override void OnActionExecuting(ActionExecutingContext context){base.OnActionExecuting(context);Debug.WriteLine("Action执行之前执行这里的代码");}}

2、所有控制继承BaseController控制器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/144604.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL(18):MySQL8.0的其它新特性

MySQL从5.7版本直接跳跃发布了8.0版本。 MySQL8.0 新增特征 1.更简便的NoSQL支持。 NoSQL泛指非关系型数据库和数据存储。随着互联网平台的规模飞速发展,传统的关系型数据库已经越来越不能满足需求。从5.6版本开始,MySQL就开始支持简单的NoSQL存储功能…

Servlet 常见的API

文章目录 写在前面Smart Tomcat 插件Servlet 中常见的API1. HttpServletinit 方法destroy 方法service 方法Servlet 的生命周期 使用 postman 构造请求使用 ajax 构造请求2. HttpServletRequest3. 前端给后端传参1). GET, query string2). POST, form3). json 4. HttpServletRe…

11_聚类算法

文章目录 1 聚类1.1 什么是聚类1.2 相似度/距离公式1.3 聚类的思想 2 K-means算法2.1 K-means算法步骤2.2 K-means算法思考2.3 K-means算法优缺点 3 解决K-Means算法对初始簇心比较敏感的问题3.1 二分K-Means算法3.2 K-Means算法3.3 K-Means||算法3.4 Canopy算法3.4.1 Canopy算…

Postman实现接口的加密和解密

近期在复习Postman的基础知识,在小破站上跟着百里老师系统复习了一遍,也做了一些笔记,希望可以给大家一点点启发。 1、目前市面上的加密的方式 对称式加密:DES,AES,Base64加密算法 非对称加密&#xff1a…

elasticsearch+canal增量、全量同步

目录 一、搭建环境: 1.1 下载软件上传到linux目录/data/soft下 1.2 把所有软件解压到/data/es-cluster 二、单节点(多节点同理)集群部署elasticsearch 2.1 创建es用户 2.2 准备节点通讯证书 2.3 配置elasticsearch,编辑/d…

城市内涝对策,万宾科技内涝积水监测仪使用效果

随着城市化进程的加速,城市道路积水问题明显越来越多,给人们的出行和生活带来更多的不便。内涝积水监测仪作为高科技产品能够实时监测道路积水情况,为城市排水系统的管理和维护提供重要的帮助。 在城市生命线的基础设施规划之中,地…

【Spring】Spring中的DI(依赖注入)Dependence Import

由之前的IoC可以知道,我们写在具体对象后面的new方法肯定不能要了,这时候就要通过依赖注入的形式将Dao配置到Service中 Dependence Import的步骤如下: 1. 在Service类中给Dao提供setter方法 原本我们是直接给bookDao new了一个对象 public …

【AI视野·今日Sound 声学论文速览 第三十四期】Thu, 26 Oct 2023

AI视野今日CS.Sound 声学论文速览 Thu, 26 Oct 2023 Totally 9 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers Dynamic Processing Neural Network Architecture For Hearing Loss Compensation Authors Szymon Drgas, Lars Bramsl w, Archontis Poli…

AW2013芯片讲解

文章目录 前言一、AW2013芯片介绍二、AW2013从机地址三、AW2013读写时序AW2013写时序AW2013读时序 四、AW2013的INT引脚五、LED作用和配置描述LED控制PWM控制模式简短编程模式 六、AW2013寄存器讲解总结 前言 本篇文章将带大家学习AW2013芯片的使用。 一、AW2013芯片介绍 AW…

websocket学习笔记【springboot+websocket聊天室demo】

文章目录 WebSocket是什么?为什么需要WebSocket?WebSocket和Http连接的区别WebSocket的工作原理基本交互过程: Java中的WebSocket支持WebSocket的优势springboot websocket themlef 一个聊天室demopom.xmlWebSocketConfigChatControllerWebController…

电影《惊奇队长2》观后感

上周看完了电影《惊奇队长2》,可能是最近国片看多了,看看国外电影还是感觉非常不错的,其中就有特效部分。目前来说,国内特效和国外还是有一定差距的,在过年时,备受好评的《流浪地球2》据说也是用的国外特效…

碳交易机制下考虑需求响应的综合能源系统优化运行(附带Matlab程序)

碳交易机制下考虑需求响应的综合能源系统优化运行(附带Matlab程序) 仿真平台:MATLABCPLEX 使用的是yalmipcplex求解器完成求解 资源地址: 碳交易机制下考虑需求响应的综合能源系统优化运行(附带Matlab程序&#xff09…

Leetcode88 合并两个有序数组

合并两个有序数组 题解1 正向(记得插1删1)题解2 逆向 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减…

Postman工具简介

介绍 Postman是一个商业的接口测试工具。免费的版本也可以使用不少功能。 官网:https://www.postman.com/ 下载、安装、应用界面 下载 安装、安装成功以后的应用界面 双击下载下来的可执行文件进行安装,出现如下界面: 可以注册一个账…

4. 【自动驾驶与机器人中的SLAM技术】点云中的拟合问题和K近邻

目录 1.在三维体素中定义 NEARBY14,实现 14 格最近邻的查找。2.推导arg max||Ad||22的解为ATA的最大特征向量或者奇异向量。3. 将本节的最近邻算法与一些常见的近似最近邻算法进行对比,比如nanoflann,给出精度指标和时间效率指标。4. 也欢迎大…

【Qt之QWizard问题】setPixmap()设置logo、background、watermark无效不显示解决方案

问题原因: 使用QWizard或者QWizardPage设置像素图,结果设置完不显示效果。 设置示例: setPixmap(QWizard::WatermarkPixmap, QPixmap("xxx/xxx/xxx.png"));setPixmap(QWizard::BackgroundPixmap, QPixmap("xxx/xxx/xxx.png&…

YOLOv7独家原创改进:最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度

💡该教程为属于《芒果书》📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡本篇文章为YOLOv7独家原创改进:独家首发最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度。 💡对自己数据集改进有效…

代码随想录 Day47 动态规划15 LeetCode T583 两个字符串的删除操作 T72 编辑距离

LeetCode T583 两个字符串的删除操作 题目链接:583. 两个字符串的删除操作 - 力扣(LeetCode) 题目思路: 本题有两个思路 1.使用两个字符串的长度之和-2*最长公共子串(换汤不换药) 代码随想录Day45 动态规划13 LeetCode T1143最长公共子序列 T1135 不相交…

Zabbix钉钉机器人告警

目录 一.在钉钉群里添加机器人 二.配置钉钉告警脚本 1.安装python依赖模块python-requests 2.配置钉钉告警配置脚本zabbix_ding.conf 3.创建告警日志并且授权。 4.配置钉钉告警执行脚本dingding.py 5.测试 三.配置zabbix告警 1.创建媒介 2.给用户添加报警媒介 3.配置…

Mistral 7B 比Llama 2更好的开源大模型 (三)

Mistral 7B 比Llama 2更好的开源大模型 Mistral 7B是一个70亿参数的语言模型,旨在获得卓越的性能和效率。Mistral 7B在所有评估的基准测试中都优于最好的开放13B模型(Llama 2),在推理、数学和代码生成方面也优于最好的发布34B模型(Llama 1)。Mistral 7B模型利用分组查询注…