ASP.NET Core 模型验证过滤器的两种实现方法

 更新时间:2022年05月12日 09:47:41   作者:愚公搬代码  
 在.Net Core的时代中,框架会帮你自动验证,本文主要介绍了 ASP.NET Core 模型验证过滤器的两种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

 在.Net Core的时代中,框架会帮你自动验证model的state,也就是ModelState。框架会为你自动注册ModelStateInvalidFilter,这个会运行在OnActionExecuting事件里面。

基于现有框架的代码编写的话,所以我们不再需要在业务中耦合这样的模型判断代码,系统内部会检查ModelState是否为Valid,如果为InValid会直接返回400 BadRequest,这样就没有必要执行后面的代码,提高效率。因此,操作方法中不再需要以下代码:

if (!ModelState.IsValid)
{
    return BadRequest(ModelState);
}

第一种方法:.Net Core 禁用模型验证过滤器

services.Configure<ApiBehaviorOptions>(options => options.SuppressModelStateInvalidFilter = true);

SuppressModelStateInvalidFilter =true时,会关闭默认模型验证过滤器。[ApiController] 默认自带有400模型验证,且优先级比较高,如果需要自定义模型验证,则需要先关闭默认的模型验证。

第二种方法:自动替换默认模型验证

//参数验证
services.Configure<ApiBehaviorOptions>(options =>
{
    options.InvalidModelStateResponseFactory = (context) =>
    {
        var error = context.ModelState.GetValidationSummary();
        
        return new JsonResult(Result.FromError($"参数验证不通过:{error.ToString()}", ResultCode.InvalidParams));
    };
});

到此这篇关于 ASP.NET Core 模型验证过滤器的两种实现方法的文章就介绍到这了,更多相关 ASP.NET Core 模型验证过滤器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Asp.net内置对象之Request对象(概述及应用)

    Asp.net内置对象之Request对象(概述及应用)

    Request对象主要用于获取来自客户端的数据,如用户填入表单的数据、保存在客户端的Cookie等,本文将围绕Request对象,讲解其的主要作用:读取窗体变量、读取查询字符串变量、取得Web服务器端的系统信息。取得客户端浏览器信息等等,感兴趣的朋友可以了解下
    2013-02-02
  • 详解ASP.NET Core高性能服务器HTTP.SYS

    详解ASP.NET Core高性能服务器HTTP.SYS

    HTTP.SYS本质上就是一个HTTP/HTTPS监听器,它是Windows网络子系统的一部分,是一个在内核模式下运行的网络驱动,今天通过本文给大家介绍下ASP.NET Core高性能服务器HTTP.SYS,感兴趣的朋友一起看看吧
    2022-04-04
  • .NET Core类库项目中读取appsettings.json配置的方法

    .NET Core类库项目中读取appsettings.json配置的方法

    ASP.NET Core是一个全新的Web开发平台,微软在它上面构建了MVC、SingalR、GRPC、Orleans这样广泛使用的Web框架,今天通过本文给大家详细介绍下.NET Core读取appsettings.json配置的方法,感兴趣的朋友一起看看吧
    2022-03-03
  • asp.net core下给网站做安全设置的方法详解

    asp.net core下给网站做安全设置的方法详解

    这篇文章主要给大家介绍了关于asp.net core下给网站做安全设置的相关资料,文章通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • .Net Core中使用EFCore生成反向工程

    .Net Core中使用EFCore生成反向工程

    这篇文章介绍了.Net Core中使用EFCore生成反向工程的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • .net get set用法小结

    .net get set用法小结

    .net get set用法小结...
    2007-12-12
  • ASP.NET core Web中使用appsettings.json配置文件的方法

    ASP.NET core Web中使用appsettings.json配置文件的方法

    这篇文章主要给大家介绍了在ASP.NET core Web中使用appsettings.json配置文件的方法,文中给出了详细的示例代码,需要的朋友可以参考学习,下面来一起看看吧。
    2017-04-04
  • .net发送邮件实现代码

    .net发送邮件实现代码

    代码基本上可以实现邮件的发送,但是在测试时却在 smtp.Send(objMail);处显示“发送邮件失败”,最后发现的问题是,我的杀毒软件对邮件发送接收进行了保护,只需去掉保护就能够发送成功了。
    2009-02-02
  • asp.net分页控件AspNetPager的样式美化

    asp.net分页控件AspNetPager的样式美化

    自从吴旗娃推出了AspNetPager分页控件之后,受到了广大程序员朋友的喜爱,无数个网站都出现这个控件的身影。可是大部分网站程序员的朋友都是直接套用,导致满世界的分页控件样式都是一样的简洁,伤不起啊
    2011-12-12
  • 使用pdfbox实现pdf文本提取和合并功能示例

    使用pdfbox实现pdf文本提取和合并功能示例

    这篇文章主要介绍了使用pdfbox实现pdf文本提取和合并功能示例,大家参考使用吧
    2014-01-01

最新评论