0

我有自己的 ValidatorFactory,在 asp net mvc 3 应用程序中实现了结构映射。

public class StructureMapValidatorFactory : ValidatorFactoryBase
{
    public override IValidator CreateInstance(Type validatorType)
    {
        return ObjectFactory.TryGetInstance(validatorType) as IValidator;
    }
}

在全球 asax ...

FluentValidationModelValidatorProvider.Configure(provider => 
{ 
  provider.ValidatorFactory = new StructureMapValidatorFactory(); 
});

好吧,使用这种组合客户端验证不起作用,如果我使用标准提供程序配置,客户端验证工作正常。

这里有什么解决方法吗?

4

2 回答 2

1

确保您已正确配置 DI 框架以解析验证器。如果 ObjectFactory.TryGetInstance(validatorType)返回 null,它将不起作用,因为不会有任何与模型关联的验证器,也不会发出元数据。

于 2012-08-20T06:19:02.653 回答
0

最后,忘记在我的 boostrap 中调用 Configure 方法。所以,

ModelValidatorProviders.Providers.Add(new FluentValidationModelValidatorProvider(new StructureMapValidatorFactory()));

接着

FluentValidationModelValidatorProvider.Configure();
于 2012-08-20T09:19:32.817 回答