From 2bf31db6b234ae8e6153491cca02f6302b7897f3 Mon Sep 17 00:00:00 2001 From: mahan Date: Sat, 20 Dec 2025 12:05:34 +0330 Subject: [PATCH] fix: enhance parameter binding logic for route parameters --- .../Conventions/ParameterBindingConvention.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ServiceHost/Conventions/ParameterBindingConvention.cs b/ServiceHost/Conventions/ParameterBindingConvention.cs index ccc0fa73..b89b3794 100644 --- a/ServiceHost/Conventions/ParameterBindingConvention.cs +++ b/ServiceHost/Conventions/ParameterBindingConvention.cs @@ -24,6 +24,12 @@ public class ParameterBindingConvention : IApplicationModelConvention if (HasExplicitBindingSourceAttribute(parameter)) continue; + #if DEBUG + if (action.ActionName == "GetVerificationDetails") + { + + } + #endif // اگر پارامتر از route می‌آید، skip کن if (IsRouteParameter(action, parameter)) continue; @@ -70,7 +76,8 @@ public class ParameterBindingConvention : IApplicationModelConvention { if (selector.AttributeRouteModel?.Template != null) { - if (selector.AttributeRouteModel.Template.Contains($"{{{parameterName}}}", StringComparison.OrdinalIgnoreCase)) + if (selector.AttributeRouteModel.Template.Contains($"{{{parameterName}}}", StringComparison.OrdinalIgnoreCase) || + selector.AttributeRouteModel.Template.Contains($"{{{parameterName}:", StringComparison.OrdinalIgnoreCase)) return true; } } @@ -80,7 +87,8 @@ public class ParameterBindingConvention : IApplicationModelConvention { if (selector.AttributeRouteModel?.Template != null) { - if (selector.AttributeRouteModel.Template.Contains($"{{{parameterName}}}", StringComparison.OrdinalIgnoreCase)) + if (selector.AttributeRouteModel.Template.Contains($"{{{parameterName}}}", StringComparison.OrdinalIgnoreCase) || + selector.AttributeRouteModel.Template.Contains($"{{{parameterName}:", StringComparison.OrdinalIgnoreCase)) return true; } }