2015-11-06 60 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/