(精华)2020年7月21日 ASP.NET Core 全局过滤器的使用
发布日期:2021-06-29 15:08:10
浏览次数:3
分类:技术文章
本文共 2020 字,大约阅读时间需要 6 分钟。
#region 添加全局异常过滤器和参数校验过滤器services.AddControllers(options =>{ options.Filters.Add(); options.Filters.Add ();});#endregion
ValidFilterAttribute
//参数校验public class ValidFilterAttribute : BaseActionFilterAsync { public override async Task OnActionExecuting(ActionExecutingContext context) { if (!context.ModelState.IsValid) { var msgList = context.ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage); context.Result = Error(string.Join(",", msgList)); } await Task.CompletedTask; } }
GlobalExceptionFilter
//全局错误异常校验public class GlobalExceptionFilter : BaseActionFilterAsync, IAsyncExceptionFilter{ readonly ILogger _logger; public GlobalExceptionFilter(ILoggerlogger) { _logger = logger; } public async Task OnExceptionAsync(ExceptionContext context) { Exception ex = context.Exception; if (ex is BusException busEx) { _logger.LogInformation(busEx.Message); context.Result = Error(busEx.Message, busEx.ErrorCode); } else { _logger.LogError(ex, ""); context.Result = Error(ex.Message); } await Task.CompletedTask; }}
BaseActionFilterAsync
public abstract class BaseActionFilterAsync : Attribute, IAsyncActionFilter { public async virtual Task OnActionExecuting(ActionExecutingContext context) { await Task.CompletedTask; } public async virtual Task OnActionExecuted(ActionExecutedContext context) { await Task.CompletedTask; } public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { await OnActionExecuting(context); if (context.Result == null) { var nextContext = await next(); await OnActionExecuted(nextContext); } }}
转载地址:https://codeboy.blog.csdn.net/article/details/107491587 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月18日 09时41分14秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于CH568芯片的SATA电子盘方案
2019-04-29
linux下C语言判断网络是否连接
2019-04-29
猿来绘Java-40-比较器(Comparable 接口与 CompareTo方法)
2019-04-29
猿来绘Java-45-JDK8新特性可重复注解和类型注解
2019-04-29
2021/4/27课堂总结和作业
2019-04-29
2021.4.28课堂总结和作业
2019-04-29
2021.4.29课堂总结
2019-04-29
2021.4.30课堂总结和作业
2019-04-29
需要吗?2000GB+学习视频教程 面试资料免费下载
2019-04-29
MySQL对已存在数据库表添加自增ID字段
2019-04-29
idea中的一些常用快捷键
2019-04-29
js校验表单后提交表单的三种方法总结【转载】
2019-04-29
欢迎使用CSDN-markdown编辑器
2019-04-29
a标签中href调用js的几种方法
2019-04-29
jstl标签详解
2019-04-29
Eclipse中使用SVN的使用
2019-04-29
JSON.parse和eval的区别
2019-04-29
JQuery中$.ajax()方法参数详解
2019-04-29
正则表达式的数字实例
2019-04-29