1

我在 MVC 中使用 Fluent Validation 进行服务器端和不显眼的客户端验证。我不得不对其进行扩展以满足业务需求,并且遇到了默认 DataAnnotations 验证的问题。所以我只想完全禁用内置的 DataAnnotations 提供程序,并使用我自己的 Fluent Validation 扩展来进行此验证。

基本上,我需要停止呈现值类型的内置不显眼data-val-属性,例如数字和日期(data-val-number、data-val-date、data-val-required)。

我试过了:

ModelValidatorProviders.Providers.Clear();

这似乎摆脱了数字/日期属性,但所需的属性仍然存在。

我试过:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;

但这似乎没有任何作用。也许我把它放在错误的位置/顺序?

4

1 回答 1

2

使用 Fluent Validation,它有自己的标志来禁用必需的属性,必须使用FluentValidationModelValidatorProvider. 以下代码将处理默认类型属性和必需属性:

//Don't use built-in type attributes (data-val-number, data-val-date)
ModelValidatorProviders.Providers.Clear();

FluentValidationModelValidatorProvider.Configure(
    provider =>
    {
        provider.ValidatorFactory = new UnityValidatorFactory(container);

        //Don't use built-in data-val-required
        provider.AddImplicitRequiredValidator = false;
    }
);
于 2012-08-15T13:37:06.530 回答