如何为特定的Controller/Action禁用自动ModelState验证?

dkn*_*ack 5 asp.net-mvc asp.net-mvc-3

正如标题所述,我想为特定的Controller/Action禁用自动ModelState验证.

那可能吗 ?

小智 2

我认为这是可能的。创建自定义 ModelValidatorProvider。

public class CustomModelValidatorProvider 
             : DataAnnotationsModelValidatorProvider
{
    protected override IEnumerable<ModelValidator> GetValidators(
        ModelMetadata metadata, 
        ControllerContext context, 
        IEnumerable<Attribute> attributes)
    {
        return Enumerable.Empty<ModelValidator>();
    }
}
Run Code Online (Sandbox Code Playgroud)

并在启动时设置此提供程序。

ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(new CustomModelValidatorProvider());
Run Code Online (Sandbox Code Playgroud)

这个怎么样?