gpt4 book ai didi

asp.net-core - 如何禁用不可空属性的模型属性验证?

转载 作者:行者123 更新时间:2023-12-05 02:27:51 25 4
gpt4 key购买 nike

我正在使用 FluentValidation在 ASP.NET Core 6 Web API 项目中。这适用于大多数情况,因此:

  • 请求正文 JSON 语法验证由 ASP.NET Core 完成。
  • 请求对象属性验证由 FluentValidation 完成。

但是有一个特定的案例是有问题的:

  • 如果请求类型包含不可为空的属性(例如 string 而不是 string?)并且请求对象包含它的 null 值,则验证由ASP.NET Core(但应由 FluentValidation 完成)。

我当前的解决方法是使用 [ValidateNever] 注释所有不可为 null 的属性,以便 ASP.NET Core 忽略它们,但这并不好。

有没有办法禁用不可为空属性的 ASP.NET Core 模型属性验证?

注意:我无法完全禁用 ASP.NET Core 验证,因为那样它甚至不会返回 JSON 语法错误的验证错误结果。

最佳答案

尝试如下设置:

builder.Services.AddControllersWithViews(options => options.SuppressImplicitRequiredAttributeForNonNullableReferenceTypes = true);

这个问题在这个文档中已经解释过了: https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.mvcoptions.suppressimplicitrequiredattributefornonnullablereferencetypes?view=aspnetcore-6.0

关于asp.net-core - 如何禁用不可空属性的模型属性验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72883553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com