0

我正在使用 mvc3 + fluent 验证 + ninject

我有简单的控制器和没有配置验证的模型(寻呼机)......但是在该对象上也触发了流畅的验证,因此代码中断并引发异常:

> 激活 IValidator{Pager} 时出错

我在源代码中查找并找到了这个方法,它假设检查它是否需要验证某些属性,但它只检查值是否不为空:

bool IsValidatingProperty(ModelMetadata metadata) {
            return metadata.ContainerType != null && !string.IsNullOrEmpty(metadata.PropertyName);
    }

我想围绕这个问题有一些配置技巧,简而言之:我只想在我定义了 FV 规则的对象上触发 FV...

谢谢;)

4

1 回答 1

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;
        }
    }
于 2011-10-19T13:40:22.980 回答