【问题标题】:Disable automatic model validation ASP.NET Core MVC禁用自动模型验证 ASP.NET Core MVC
【发布时间】:2020-11-18 04:54:17
【问题描述】:

我有一个 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 方法中之前就命中了验证方法。

有没有办法阻止这种情况并在我准备好时强制验证?

【问题讨论】:

    标签: c# asp.net-mvc validation asp.net-core


    【解决方案1】:

    可能重复:Correct way to disable model validation in ASP.Net Core 2 MVC

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

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

    【讨论】:

      猜你喜欢
      • 2011-04-04
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      相关资源
      最近更新 更多