Skip to content

Commit 9c95cda

Browse files
authored
Merge pull request #18 from SharpGrip/17-net8-fluentautovalidation-and-the-default-modelstateinvalidfilter
fix unvalidated entries when validation is skipped due to annotation configuration
2 parents 5decb86 + 8379dde commit 9c95cda

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</PropertyGroup>
1010

1111
<PropertyGroup>
12-
<PackageVersion>1.3.0</PackageVersion>
12+
<PackageVersion>1.3.1</PackageVersion>
1313
<Company>SharpGrip</Company>
1414
<Authors>SharpGrip</Authors>
1515
<Copyright>SharpGrip</Copyright>

FluentValidation.AutoValidation.Mvc/src/Filters/FluentValidationAutoValidationActionFilter.cs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionE
4141
if (autoValidationMvcConfiguration.ValidationStrategy == ValidationStrategy.Annotations &&
4242
endpoint != null && !endpoint.Metadata.OfType<FluentValidationAutoValidationAttribute>().Any())
4343
{
44+
HandleUnvalidatedEntries(context);
45+
4446
await next();
4547

4648
return;
@@ -76,13 +78,7 @@ public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionE
7678
}
7779
}
7880

79-
if (autoValidationMvcConfiguration.DisableBuiltInModelValidation)
80-
{
81-
foreach (var modelStateEntry in context.ModelState.Values.Where(modelStateEntry => modelStateEntry.ValidationState == ModelValidationState.Unvalidated))
82-
{
83-
modelStateEntry.ValidationState = ModelValidationState.Skipped;
84-
}
85-
}
81+
HandleUnvalidatedEntries(context);
8682

8783
if (!context.ModelState.IsValid)
8884
{
@@ -96,5 +92,16 @@ public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionE
9692

9793
await next();
9894
}
95+
96+
private void HandleUnvalidatedEntries(ActionExecutingContext context)
97+
{
98+
if (autoValidationMvcConfiguration.DisableBuiltInModelValidation)
99+
{
100+
foreach (var modelStateEntry in context.ModelState.Values.Where(modelStateEntry => modelStateEntry.ValidationState == ModelValidationState.Unvalidated))
101+
{
102+
modelStateEntry.ValidationState = ModelValidationState.Skipped;
103+
}
104+
}
105+
}
99106
}
100107
}

0 commit comments

Comments
 (0)