fix: enhance parameter binding logic for route parameters

This commit is contained in:
2025-12-20 12:05:34 +03:30
parent 7a4a6de84f
commit 2bf31db6b2

View File

@@ -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;
}
}