Saltar al contenido

Forma correcta de deshabilitar la validación del modelo en ASP.Net Core 2 MVC

Este equipo de redactores ha estado mucho tiempo investigando respuestas a tu interrogante, te compartimos la respuestas de modo que nuestro objetivo es resultarte de mucha ayuda.

Solución:

 services.Configure(options =>
        
            options.SuppressModelStateInvalidFilter = true;
        );

debe deshabilitar la validación automática del estado del modelo.

Utilice este método de extensión:

public static IServiceCollection DisableDefaultModelValidation(this IServiceCollection services)

  ServiceDescriptor serviceDescriptor = services.FirstOrDefault((Func) (s => s.ServiceType == typeof (IObjectModelValidator)));
  if (serviceDescriptor != null)
  
    services.Remove(serviceDescriptor);
    services.Add(new ServiceDescriptor(typeof (IObjectModelValidator), (Func) (_ => (object) new EmptyModelValidator()), ServiceLifetime.Singleton));
  
  return services;



public class EmptyModelValidator : IObjectModelValidator

  public void Validate(ActionContext actionContext, ValidationStateDictionary validationState, string prefix, object model)
  
  

uso:

public void ConfigureServices(IServiceCollection services)

    services.DisableDefaultModelValidation();

A partir de aspnet core 3.1así es como deshabilita la validación del modelo como se ve en los documentos:

Primero cree esta clase NullValidator:

public class NullObjectModelValidator : IObjectModelValidator

    public void Validate(ActionContext actionContext,
        ValidationStateDictionary validationState, string prefix, object model)
    

    

Luego utilícelo en lugar del validador del modelo real:

services.AddSingleton();

Tenga en cuenta que esto solo deshabilita la validación del modelo, aún obtendrá errores de enlace del modelo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *