问题描述
|
如标题所述,我想为特定的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();