You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a sample Filter below which i'm trying to use a date range filter with in asp.net core 7, i'm not that this might be limitation of asp.net minimal API, if there's a solution any suggestion will be appreciated.
Filter sample
publicclassClaimFilter:GenericFilter{[CompareTo("Description","Notes", CombineWith = CombineType.And)][StringFilterOptions(StringFilterOption.Contains)]publicstring?Search{get;set;}publicClaimStatus[]?Status{get;set;}publicRange<DateTime> CreatedAt {get;set;}// Current work around// [CompareTo("CreatedAt")]// [OperatorComparison(OperatorType.GreaterThanOrEqual)]// public DateTime? StartDate { get; set; }//// [CompareTo("CreatedAt")]// [OperatorComparison(OperatorType.LessThanOrEqual)]// public DateTime? EndDate { get; set; }}
An unhandled exception has occurred while executing the request.
System.InvalidOperationException: Body was inferred but the method does not allow inferred body parameters.
Below is the list of parameters that we found:
Parameter | Source
---------------------------------------------------------------------------------
sv | Services (Inferred)
Search | Query String (Inferred)
Status | Query String (Inferred)
StartDate | Query String (Inferred)
EndDate | Query String (Inferred)
CreatedAt | Body (Inferred)
Page | Query String (Inferred)
Sort | Query String (Inferred)
PerPage | Query String (Inferred)
SortBy | Query String (Inferred)
CombineWith | Query String (Inferred)
filter | As Parameter (Attribute)
Did you mean to register the "Body (Inferred)" parameter(s) as a Service or apply the [FromServices] or [FromBody] attribute?
The text was updated successfully, but these errors were encountered:
According to the error message, you can try adding [FromQuery] attribute but I don't think it'll work.
How do you send the request? Can you share?
The parameter should contain dot like ?CreatedAt.Min=01.01.2023. But dot is used to initialize complex types and bind properties of that types.
Since Range<T> is a complex type and it seems like the minimal API model binder doesn't support it.
I have a sample Filter below which i'm trying to use a date range filter with in asp.net core 7, i'm not that this might be limitation of asp.net minimal API, if there's a solution any suggestion will be appreciated.
Filter sample
publicclassClaimFilter:GenericFilter{[CompareTo("Description","Notes", CombineWith = CombineType.And)][StringFilterOptions(StringFilterOption.Contains)]publicstring?Search{get;set;}publicClaimStatus[]?Status{get;set;}publicRange<DateTime> CreatedAt {get;set;}// Current work around// [CompareTo("CreatedAt")]// [OperatorComparison(OperatorType.GreaterThanOrEqual)]// public DateTime? StartDate { get; set; }//// [CompareTo("CreatedAt")]// [OperatorComparison(OperatorType.LessThanOrEqual)]// public DateTime? EndDate { get; set; }}
Your current workaround seems good at the moment. Sending those parameters separated works well.
I have a sample Filter below which i'm trying to use a date range filter with in asp.net core 7, i'm not that this might be limitation of asp.net minimal API, if there's a solution any suggestion will be appreciated.
Filter sample
Minimal API sample
Error message
The text was updated successfully, but these errors were encountered: