如何禁用特定控制器/动作的自动ModelState验证?

问题描述

| 如标题所述,我想为特定的Controller / Action禁用自动ModelState验证。 那可能吗 ?     

解决方法

        我认为有可能。创建自定义ModelValidatorProvider。
public class CustomModelValidatorProvider 
             : DataAnnotationsModelValidatorProvider
{
    protected override IEnumerable<ModelValidator> GetValidators(
        ModelMetadata metadata,ControllerContext context,IEnumerable<Attribute> attributes)
    {
        return Enumerable.Empty<ModelValidator>();
    }
}
并在启动时设置此提供程序。
ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(new CustomModelValidatorProvider());
这个怎么样?     ,        考虑通过在控制器操作中清除“ 2”字典来代替,方法是调用:
Modelstate.Clear();