繁体   English   中英

禁用自动模型验证 ASP.NET Core MVC

[英]Disable automatic model validation ASP.NET Core MVC

我有一个Save方法,它获取传入的视图模型。在 Viewmodel 中,我有一堆自定义验证发生。

public class DealViewModel : IValidatableObject
{
    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
    }
}

public IActionResult SaveDeal(DealViewModel dealViewModel)
{
}

我想在命中 save 方法后运行验证,因为我需要从会话中获取信息更新视图模型然后进行验证。

这就是我验证的方式:

 var isValid = Validator.TryValidateObject(dealViewModel, context, results, true);

但是我的代码在它甚至在控制器的SaveDeal方法中之前就命中了验证方法。

有没有办法阻止它并在我准备好时强制验证?

可能重复: 在 ASP.Net Core 2 MVC 中禁用模型验证的正确方法

但这可能会有所帮助: https : //docs.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-3.1#disable-validation

基本上,添加一个继承 IObjectModelValidator 但对 Validate 方法不执行任何操作的新类。 还将其添加到依赖项注入容器中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM