我正在使用mvc3 + fluent validaton + ninject
我有简单的控制器和没有配置验证的模型(Pager)......但是也会在该对象上触发流畅的验证,因此代码会中断并抛出异常:
>激活IValidator {Pager}
时出错
我在源代码中查找并发现了这个方法,它假设检查是否需要验证某些属性,但它只检查值是否为null:
bool IsValidatingProperty(ModelMetadata metadata) {
return metadata.ContainerType != null && !string.IsNullOrEmpty(metadata.PropertyName);
}
我想有一些关于这个问题的配置技巧,简而言之:我想仅在我定义了FV规则的对象上触发FV ......
Thanx;)
答案 0 :(得分:1)
根据杰里米的建议
http://fluentvalidation.codeplex.com/workitem/7091
我发现解决问题的方法并不那么难:
public class TestValidatorFactory : ValidatorFactoryBase
{
private readonly IKernel Container;
public TestValidatorFactory(IKernel container)
{
Container = container;
}
public override IValidator CreateInstance(Type validatorType)
{
var bindings = (List<IBinding>)Container.GetBindings(validatorType);
if (bindings.Count > 0) return (IValidator)Container.Get(validatorType);
else return null;
}
}