From 26f84195a2460a3cb19cc6f94c4e21545232e2c6 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 27 Nov 2020 15:50:53 +0800 Subject: [PATCH] Use object as the parameter of form binding and convert all parameters into camel case. Resolve #6157 --- .../Generators/ProxyScriptingJsFuncHelper.cs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/ProxyScriptingJsFuncHelper.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/ProxyScriptingJsFuncHelper.cs index 0fd80203df..aa9c1fdaa0 100644 --- a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/ProxyScriptingJsFuncHelper.cs +++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/ProxyScriptingJsFuncHelper.cs @@ -110,9 +110,11 @@ namespace Volo.Abp.Http.ProxyScripting.Generators public static string GetParamNameInJsFunc(ParameterApiDescriptionModel parameterInfo) { + var parameterInfoName = string.Join(".", parameterInfo.Name.Split(".").Select(x => NormalizeJsVariableName(x.ToCamelCase()))); + return parameterInfo.Name == parameterInfo.NameOnMethod - ? NormalizeJsVariableName(parameterInfo.Name.ToCamelCase(), ".") - : NormalizeJsVariableName(parameterInfo.NameOnMethod.ToCamelCase()) + "." + NormalizeJsVariableName(parameterInfo.Name.ToCamelCase(), "."); + ? parameterInfoName + : NormalizeJsVariableName(parameterInfo.NameOnMethod.ToCamelCase()) + "." + parameterInfoName; } public static string CreateJsObjectLiteral(ParameterApiDescriptionModel[] parameters, int indent = 0) @@ -133,9 +135,11 @@ namespace Volo.Abp.Http.ProxyScripting.Generators public static string GetFormPostParamNameInJsFunc(ParameterApiDescriptionModel parameterInfo) { + var parameterInfoName = string.Join(".", parameterInfo.Name.Split(".").Select(x => NormalizeJsVariableName(x.ToCamelCase()))); + return parameterInfo.Name == parameterInfo.NameOnMethod - ? NormalizeJsVariableName((parameterInfo.DescriptorName + parameterInfo.Name).ToCamelCase(), ".") - : NormalizeJsVariableName(parameterInfo.NameOnMethod.ToCamelCase()) + "." + NormalizeJsVariableName((parameterInfo.DescriptorName + parameterInfo.Name).ToCamelCase(), "."); + ? parameterInfoName + : NormalizeJsVariableName(parameterInfo.NameOnMethod.ToCamelCase()) + "." + parameterInfoName; } public static string CreateJsFormPostData(ParameterApiDescriptionModel[] parameters, int indent) @@ -158,12 +162,9 @@ namespace Volo.Abp.Http.ProxyScripting.Generators public static string GenerateJsFuncParameterList(ActionApiDescriptionModel action, string ajaxParametersName) { - var paramsIsFromForm = action.Parameters.Any(x => x.BindingSourceId == ParameterBindingSources.Form); - var methodParamNames = paramsIsFromForm - ? action.Parameters.Select(p => p.DescriptorName + p.Name).Distinct().ToList() - : action.ParametersOnMethod.Select(p => p.Name).Distinct().ToList(); + var methodParamNames = action.ParametersOnMethod.Select(p => p.Name).Distinct().ToList(); methodParamNames.Add(ajaxParametersName); return methodParamNames.Select(prmName => NormalizeJsVariableName(prmName.ToCamelCase())).JoinAsString(", "); } } -} \ No newline at end of file +}