2015-11-06 48 views
1

我正在尝试在web api 2项目中使用Fluent Validation,但我无法使模型状态正常工作。我下载this nuget package,并在我的模型中加入此行我的Application_Start如何在Web Api 2.0中使用FluentValidation?

 FluentValidationModelValidatorProvider.Configure(GlobalConfiguration.Configuration); 

然后我说

[Validator(typeof(LotValidator))] 

但我ModelState.IsValid始终是有效的。我不知道我缺少什么,或者是否有我的模型在不同的课程项目中(尽管我参考了FluentValidation包),然后是我的webapi项目。

+0

你不或许有你的验证器类的内部,你呢?我创建了一些验证器类,并将它们留作VS默认的“class MyValidatorClass ...”,并忘记将它们公开。由于它们在一个单独的项目中,并且默认情况下是内部的,所以它们不能被web项目实例化,并且验证只是没有执行......也没有错误。 –

+0

没有。所有公众 – chobo2

回答

0

您可能没有将ValidateModelStateFilter添加到过滤器中。

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     //Fluent Validation 
     config.Filters.Add(new ValidateModelStateFilter()); 
     FluentValidationModelValidatorProvider.Configure(config); 

     //snip..  
    } 
} 

我对如何做这里的一切都长的帖子 - http://nodogmablog.bryanhogan.net/2016/12/fluent-validation-with-web-api-2/