如何将ASP.NETCore模型验证过滤器以长尾词形式表达为两种实现方法的疑问?

2026-03-30 11:161阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计496个文字,预计阅读时间需要2分钟。

如何将ASP.NETCore模型验证过滤器以长尾词形式表达为两种实现方法的疑问?

目录方法一:.Net Core 禁用模型验证过滤器方法二:自动替换默认模型验证

在.Net Core 时代,框架会帮助您自动验证 model 的 state,即 ModelState。框架会自动注册 ModelStat。

目录
  • 第一种方法:.Net Core 禁用模型验证过滤器
  • 第二种方法:自动替换默认模型验证

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

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

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

如何将ASP.NETCore模型验证过滤器以长尾词形式表达为两种实现方法的疑问?

第一种方法:.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 模型验证过滤器内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

标签:两种实现

本文共计496个文字,预计阅读时间需要2分钟。

如何将ASP.NETCore模型验证过滤器以长尾词形式表达为两种实现方法的疑问?

目录方法一:.Net Core 禁用模型验证过滤器方法二:自动替换默认模型验证

在.Net Core 时代,框架会帮助您自动验证 model 的 state,即 ModelState。框架会自动注册 ModelStat。

目录
  • 第一种方法:.Net Core 禁用模型验证过滤器
  • 第二种方法:自动替换默认模型验证

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

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

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

如何将ASP.NETCore模型验证过滤器以长尾词形式表达为两种实现方法的疑问?

第一种方法:.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 模型验证过滤器内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

标签:两种实现