我有一个 API 控制器,用于在我正在开发的应用程序上执行自动保存。它使用与视图相同的视图模型,其中有许多必填字段。如果用户在保存表单时未填写表单,则自动保存控制器可能需要保存不被视为有效的模型。默认情况下,.NET Core 控制器声明为[ApiController]
属性将自动强制验证。我知道我可以像这样禁用它Startup.cs
:
services.Configure<ApiBehaviorOptions>(options =>
{
options.SuppressModelStateInvalidFilter = true;
});
但这将适用于项目中的所有 API 控制器。是否可以仅禁用此默认验证one控制器还是动作?到目前为止我发现的所有内容都指示我使用上面的代码,但这并没有实现我正在寻找的东西。
与 Poke 的答案类似,我建议对您不希望验证的操作使用不同的模型。然而,我不会创建模型的副本,而是从经过验证的模型中派生并添加[ValidateNever]
属性,例如
[ValidateNever]
public class MyUnvalidatedModel : MyValidatedModel {
}
这将使您避免大量重复,同时仍然为您提供未经验证的模型版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)