Skip to content

Commit 21c66e4

Browse files
authored
Merge pull request #43 from SharpGrip/38-mvc-autovalidation-not-performed-with-a-null-binding-source
add null binding source
2 parents ccc4eec + 4550942 commit 21c66e4

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

FluentValidation.AutoValidation.Mvc/src/Configuration/AutoValidationMvcConfiguration.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ public class AutoValidationMvcConfiguration
4949
/// </summary>
5050
public bool EnableCustomBindingSourceAutomaticValidation { get; set; } = false;
5151

52+
/// <summary>
53+
/// Enables asynchronous automatic validation for parameters not bound from any binding source (typically parameters without a declared or inferred binding source).
54+
/// </summary>
55+
public bool EnableNullBindingSourceAutomaticValidation { get; set; } = false;
56+
5257
/// <summary>
5358
/// Holds the overridden result factory. This property is meant for infrastructure and should not be used by application code.
5459
/// </summary>

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,8 @@ private bool HasValidBindingSource(BindingSource? bindingSource)
141141
(autoValidationMvcConfiguration.EnableFormBindingSourceAutomaticValidation && bindingSource == BindingSource.Form) ||
142142
(autoValidationMvcConfiguration.EnableQueryBindingSourceAutomaticValidation && bindingSource == BindingSource.Query) ||
143143
(autoValidationMvcConfiguration.EnablePathBindingSourceAutomaticValidation && bindingSource == BindingSource.Path) ||
144-
(autoValidationMvcConfiguration.EnableCustomBindingSourceAutomaticValidation && bindingSource == BindingSource.Custom);
144+
(autoValidationMvcConfiguration.EnableCustomBindingSourceAutomaticValidation && bindingSource == BindingSource.Custom) ||
145+
(autoValidationMvcConfiguration.EnableNullBindingSourceAutomaticValidation && bindingSource == null);
145146
}
146147

147148
private void HandleUnvalidatedEntries(ActionExecutingContext context)

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ app.MapPost("/", (SomeOtherModel someOtherModel) => $"Hello again {someOtherMode
6161
| EnableQueryBindingSourceAutomaticValidation | `true` | Enables asynchronous automatic validation for parameters bound from `BindingSource.Query` binding sources (typically parameters decorated with the `[FromQuery]` attribute). |
6262
| EnablePathBindingSourceAutomaticValidation | `false` | Enables asynchronous automatic validation for parameters bound from `BindingSource.Path` binding sources (typically parameters decorated with the `[FromRoute]` attribute). |
6363
| EnableCustomBindingSourceAutomaticValidation | `false` | Enables asynchronous automatic validation for parameters bound from `BindingSource.Custom` binding sources. |
64+
| EnableNullBindingSourceAutomaticValidation | `false` | Enables asynchronous automatic validation for parameters not bound from any binding source (typically parameters without a declared or inferred binding source). |
6465

6566
```
6667
using SharpGrip.FluentValidation.AutoValidation.Mvc.Extensions;

0 commit comments

Comments
 (0)