我在asp net mvc 3应用程序中有自己的ValidatorFactory和structuremap实现。
public class StructureMapValidatorFactory : ValidatorFactoryBase
{
public override IValidator CreateInstance(Type validatorType)
{
return ObjectFactory.TryGetInstance(validatorType) as IValidator;
}
}
在全球的asax中......
FluentValidationModelValidatorProvider.Configure(provider =>
{
provider.ValidatorFactory = new StructureMapValidatorFactory();
});
好吧,使用这种组合客户端验证不起作用,如果我使用标准提供程序配置,客户端验证工作正常。
这里有解决方法吗?
答案 0 :(得分:1)
确保您已正确配置DI框架以解析验证器。如果ObjectFactory.TryGetInstance(validatorType)
返回null,则它将不起作用,因为不会有任何与模型关联的验证器,也不会发出元数据。
答案 1 :(得分:0)
最后,忘了在我的boostrap中调用Configure方法。所以,
ModelValidatorProviders.Providers.Add(new FluentValidationModelValidatorProvider(new StructureMapValidatorFactory()));
然后
FluentValidationModelValidatorProvider.Configure();