【问题标题】:Can I disable DataAnnotations validation on DefaultModelBinder?我可以在 DefaultModelBinder 上禁用 DataAnnotations 验证吗?
【发布时间】:2010-03-16 21:49:03
【问题描述】:

我希望 DefaultModelBinder 不执行任何基于 DataAnnotations 元数据的验证。我已经在站点的管理区域中使用了带有 DynamicData 的 DataAnnotations,并且我需要为基于 MVC 的前端设置一组不同的验证规则。

我正在用 MetadataType 属性装饰我的类。如果我可以为同一个模型有不同的 MetadataType 类,但在不同的场景中使用,那就太好了。如果不是,我可以通过设置一些属性或创建它的专用版本来禁用 DefaultModelBinder 上的验证。

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-2


    【解决方案1】:

    查看ModelValidatorProviders.Providers 集合,只留下必要的条目。

    ModelValidatorProviders.Providers.Clear() 应该可以解决您的问题,但您仍然应该查看它以了解它是如何工作的。

    【讨论】:

    • 优秀。这就是我在 Application_Start 上使用的:ModelValidatorProviders.Providers.Remove(ModelValidatorProviders.Providers.Single(p => p is DataAnnotationsModelValidatorProvider));
    • @Max Toro:这应该可以正常工作,但您可能也不需要 IDataErrorInfo 验证。
    猜你喜欢
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多