我正在尝试在web api 2项目中使用Fluent Validation,但我无法使模型状态发挥作用。我下载了this nuget package并将此行添加到我的Application_Start
FluentValidationModelValidatorProvider.Configure(GlobalConfiguration.Configuration);
然后在我的模型中我添加了
[Validator(typeof(LotValidator))]
但我的ModelState.IsValid始终有效。我不知道我错过了什么,或者我是否在不同的课程项目中有我的模型(尽管我参考了FluentValidation包)然后我的webapi项目。
答案 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