如何在Web Api 2.0中使用FluentValidation?

时间:2015-11-06 21:13:34

标签: asp.net-web-api fluentvalidation

我正在尝试在web api 2项目中使用Fluent Validation,但我无法使模型状态发挥作用。我下载了this nuget package并将此行添加到我的Application_Start

      FluentValidationModelValidatorProvider.Configure(GlobalConfiguration.Configuration);

然后在我的模型中我添加了

 [Validator(typeof(LotValidator))]

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

2 个答案:

答案 0 :(得分:1)

您可能没有将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/

答案 1 :(得分:0)

这大概是一些“将空对象传递给API”的问题。在这种情况下,您需要验证您的API是否收到一些空参数。

FluentValidation is designed to validate the properties of an object